var p1 = new Promise((resolve, reject) => {
setTimeout(()=>{ resolve("one");console.log("p1");}, 1000);
});
var p2 = new Promise((resolve, reject) => {
setTimeout(()=>{ console.log("p2");resolve("two")}, 2000);
});
var p3 = new Promise((resolve, reject) => {
setTimeout(resolve, 3000, 'three'); //等同於resolve('three')
});
var p4 = new Promise((resolve, reject) => {
setTimeout(resolve, 4000, 'four');
});
var p5 = new Promise((resolve, reject) => {
reject('reject');
});
// 正常狀況
// Promise.all([p1, p2, p3, p4]).then(values => {
// console.log("[Promise.all 1~4]:"+values); //[Promise.all 1~4]:one,two,three,four
// }, reason => {
// console.log(reason)
// });
// 回傳結果
//p1
//p2
//[Promise.all 1~4]:one,two,three,four
//一個拒絕
Promise.all([p1, p2, p3, p4, p5]).then(values => {
console.log("[Promise.all 1~5]"+values);
}, reason => {
console.log(reason)
});
// 回傳結果
reject // 等到有一個拒絕就馬上先回拒絕
p1 //但其他的等待一秒還是會執行
p2