Promise.all2 = function (promiseList) {
return new Promise((resolve, reject) => {
const result = [] // 存放成功的promise的结果
const length = promiseList.length // 记录promiseList的长度
let count = 0 // 当有promise成功时,count就+1
promiseList.map((promise, index) => {
promise.then(
(data) => {
result[index] = res // promise请求成功就把结果放到result中
count += 1
if (count === length - 1) {
resolve(result) // promise全部请求成功时执行resolve
}
},
(err) => {
reject(err) // 任意失败就执行reject
}
)
})
})
}
const promises = Promise.all2([promise1, promise2, promise3])
promises.then(f1, (error) => { console.log(error) })
手写Promise.all
最新推荐文章于 2024-05-20 11:40:56 发布