Promise.all()
传入参数是一个promise数组,当数组中的所有promise都成功时,all方法返回一个成功的promise,且保存的结果为所有成功promise的结果,否则返回失败的promise。
Promise.all = function(promises) {
return new Promise((resolve, reject) => {
let len = promises.length;
// 记录成功的promise个数
let count = 0;
// 记录成功promise的结果
let arr = [];
for (let i = 0; i < len; i++) {
promises[i].then(value => {
// 成功的promise都会执行这里的代码
count++;
arr[i] = value;
if (count == len) {
resolve(arr)
}
}, reason => {
reject(reason)
})
}
})
}
Promise.race()
传入参数是一个promise数组,race的返回结果也是一个promise,该promise的状态与数组中第一个promise的状态一致。
Promise.race = function(promises) {
return new Promise((resolve, reject) => {
let len = promises.length;
for (let i = 0; i < len; i++) {
promises[i].then(value => {
resolve(value)
}, reason => {
reject(reason)
})
}
})
}
4040

被折叠的 条评论
为什么被折叠?



