S25.4.4.3_A7.1_T2.js (1107B)
1 // |reftest| async 2 // Copyright 2014 Cubane Canada, Inc. All rights reserved. 3 // See LICENSE for details. 4 5 /*--- 6 es6id: S25.4.4.3_A7.1_T2 7 author: Sam Mikes 8 description: Promise.race([p1, p2]) settles when first settles 9 includes: [promiseHelper.js] 10 flags: [async] 11 ---*/ 12 13 var sequence = []; 14 15 var p1 = Promise.resolve(1), 16 p2 = new Promise(function() {}), 17 p = Promise.race([p1, p2]); 18 19 sequence.push(1); 20 21 p.then(function(result) { 22 assert.sameValue(result, 1, 'The value of result is expected to be 1'); 23 24 sequence.push(4); 25 assert.sameValue(sequence.length, 4, 'The value of sequence.length is expected to be 4'); 26 checkSequence(sequence, "This happens second"); 27 }).catch($DONE); 28 29 Promise.resolve().then(function() { 30 sequence.push(3); 31 assert.sameValue(sequence.length, 3, 'The value of sequence.length is expected to be 3'); 32 checkSequence(sequence, "This happens first"); 33 }).then(function() { 34 sequence.push(5); 35 assert.sameValue(sequence.length, 5, 'The value of sequence.length is expected to be 5'); 36 checkSequence(sequence, "This happens third"); 37 }).then($DONE, $DONE); 38 39 sequence.push(2);