S25.4.4.1_A8.1_T1.js (975B)
1 // |reftest| async 2 // Copyright 2014 Cubane Canada, Inc. All rights reserved. 3 // See LICENSE for details. 4 5 /*--- 6 es6id: S25.4.4.1_A8.1_T1 7 author: Sam Mikes 8 description: Promise.all([p1, p2]) resolution functions are called in predictable sequence 9 includes: [promiseHelper.js] 10 flags: [async] 11 ---*/ 12 13 var sequence = []; 14 15 var p1 = new Promise(function(resolve) { 16 resolve(1); 17 }); 18 var p2 = new Promise(function(resolve) { 19 resolve(2); 20 }); 21 22 sequence.push(1); 23 24 p1.then(function() { 25 sequence.push(3); 26 assert.sameValue(sequence.length, 3); 27 checkSequence(sequence, "Expected to be called first."); 28 }).catch($DONE); 29 30 Promise.all([p1, p2]).then(function() { 31 sequence.push(5); 32 assert.sameValue(sequence.length, 5); 33 checkSequence(sequence, "Expected to be called third."); 34 }).then($DONE, $DONE); 35 36 p2.then(function() { 37 sequence.push(4); 38 assert.sameValue(sequence.length, 4); 39 checkSequence(sequence, "Expected to be called second."); 40 }).catch($DONE); 41 42 sequence.push(2);