原生Promise.all方法的分析
- 接收一个promise数组,返回一个结果数组
- 能用.then进行链式调用
- 所有promise成功执行后返回最终的值
- 当有一个promise被reject时,直接返回reject的信息
代码实现
Promise.prototype.all=function(promisArr){
let count = 0;
let res = [];
return Promise((resolve,reject)=>{
for(let [index,item] of promisArr.entries()){
Promise.resolve(item).then((result)=>{
res[index] = result;
count++;
if(count===promisArr.length){
resolve(res)
}
}).catch((err)=>{
reject(err)
})
}
})
}