Promise Function
Promise.all
功能: 同時執行所有 Promise 直到全部成功 或任一失敗
function all(promises) {
const responseArr = new Array(promises.length);
const solveArr = new Array(promises.length).fill(false);
if(promises.length === 0) {
return Promise.resolve([]);
}
return new Promise((resolve, reject) => {
for(let i=0;i<promises.length;i++) {
if(promises[i] instanceof Promise) {
promises[i].then((response) => {
responseArr[i] = response
solveArr[i] = true;
if(!solveArr.includes(false)) {
resolve(responseArr);
}
}).catch((err) => {
reject(err)
})
} else {
responseArr[i] = promises[i];
solveArr[i] = true;
}
}
})
}
Promise.allSettled
Promise.any
Promise.race
Last updated