本系列中的函数都经过测试可以使用,如有错漏,请留言帮助修改。
Promise.all
Promise.myAll2 = function(arr){
let result = []
let count = 0
return new Promise(function(resolve,reject){
arr.forEach((value,index)=>{
Promise.resolve(arr[index]).then((value)=>{
count++
result.push(value)
if(count === arr.length)
return resolve(result)
},(reason)=>{
return reject(reason)
})
})
})
}
let a = new Promise((reslove,reject)=>{
reslove(1)
})
let b = new Promise((reslove,reject)=>{
reslove(2)
})
let c = new Promise((reslove,reject)=>{
reject(3)
})
Promise.myAll2([a,b,c]).then((value)=>{
console.log(value)
},(reason)=>{
console.log(reason)
})
Promise.race
Promise.myRace = function(arr){
return new Promise(function(resolve,reject){
arr.forEach((value,index)=>{
Promise.resolve(arr[index]).then((value)=>{
return resolve(value)
},(reason)=>{
return reject(reason)
})
})
})
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。