function promiseAll(promises) {
// 保存所有结果
let result = [];
// 统计是否全部执行完毕
let count = 0;
return new Promise((resolve, reject) => {
for(let i = 0; i < promises.length; i++) {
count++;
promises[i].then(function(value) {
// 下表位置添加结果
result[i] = value;
// 全部完成后resolve
if(count === promises.length) {
resolve(result);
}
}).catch(function(reason) {
// 失败直接推出.
reject(reason);
})
}
})
}
JS手写实现Promise.all
最新推荐文章于 2024-03-19 22:49:26 发布