Promise.myAll = function(proms) {
let res, rej
const p = new Promise((resolve, reject) => {
res = resolve
rej = reject
})
let i = 0
const result = []
for(let pro of proms) {
const idx = i
i ++
Promise.resolve(pro).then(data => {
result[idx] = data
i --
if(i === 0) {
res(result)
}
}, rej)
}
if(i === 0) {
res([])
}
return p
}
Promise.myAll([1,2,Promise.reject(5),3,4]).then(res => {
console.log(res);
}).catch(e => {
console.log(e);
})
抄大佬一个Promise.all
于 2024-12-26 23:04:27 首次发布