上一篇我们写了手写了一个Promise,后面的一系列Promise 的方法就简单了,我们也来写一写
1:promiseAll 方法 是全部成功 ,返回的promise 就成功,一个失败就是失败,我们可以用一个数组把返回结果装起来,成功的时候就往里面添加数据 一旦素组的长度等于传进来数组的长度,那我们就Resolve
const myPromiseAll = (interable)=>{
let count = 0;
const res = [];// 装返回的结果
return new Promise((resolve,reject)=>{
const length = interable.length;
if (length === 0) {
return resolve(res);
}
for(const [index,value] of interable.entries()){
Promise.resolve(value).then((data)=>{
count ++;
res[index] = data;
if(count=== interable.lenght){
resolve(res);//也就是数组的长度=传进来可遍历的长度 那就代表全部成功
}
}).catch(e=>{reject(e)})
}
})
}
2.promise.any 和all 相反,只要有一个成功就是成功,全部失败才是失败