在手写之前我们先要确定几点事项:
1.是在promise上去写而不是在原型上写;
2.知道all的参数(promise数组)和返回值(新的promise对象)
3.知道要用数组来记录结果
4.知道只要有一个reject就整体reject
Promise.myAll = function (list) {
const result=[]
let count=0
const prmoise = new Promise((resolve,reject)=>{
list.map((p,index)=>{
p.then((res)=>{
result[index]=res
count+=1
if(count===list.length){
resolve(result)
}
},(reason)=>{
reject(reason)
})
})
})
return prmoise
}