【學習記錄】Promise
阿新 • • 發佈:2019-01-31
1、Promise.all 全部執行完回撥
var p1 = new Promise(function (resolve, reject) { setTimeout(resolve, 500, 'P1'); }); var p2 = new Promise(function (resolve, reject) { setTimeout(resolve, 600, 'P2'); }); // 同時執行p1和p2,並在它們都完成後執行then: Promise.all([p1, p2]).then(function (results) { console.log(results); // 獲得一個Array: ['P1', 'P2']
});
2、Promise.race 返回最快的那個結果,另一個結果被拋棄
var p1 = new Promise(function (resolve, reject) { setTimeout(resolve, 500, 'P1'); }); var p2 = new Promise(function (resolve, reject) { setTimeout(resolve, 600, 'P2'); }); Promise.race([p1, p2]).then(function (result) { console.log(result); // 'P1' });
3、按順序執行
var p = new Promise(function (resolve, reject) { log('start new Promise...'); resolve(123); }); p.then(p1) .then(p1) .then(p3) .then(p4) .then(function (result) { log('Got value: ' + result); });
詳細原文地址:https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/0014345008539155e93fc16046d4bb7854943814c4f9dc2000