帮我手写一个promise.all
时间: 2023-11-11 12:51:58 浏览: 97
当然,我很乐意帮您手写一个 Promise.all!请您参考以下代码:
function promiseAll(promises) {
let results = [];
return new Promise((resolve, reject) => {
promises.forEach((promise, index) => {
Promise.resolve(promise)
.then(result => {
results[index] = result;
if (results.length == promises.length) {
resolve(results);
}
})
.catch(error => {
reject(error);
});
});
});
}
这个函数可以接收一个包含多个 Promise 的数组,然后返回一个新的 Promise,这个新的 Promise 会在所有的 Promise 都完成后完成,并且把所有 Promise 的结果以数组的形式返回。如果有任何一个 Promise 失败了,那么这个新的 Promise 也会失败,并且把第一个失败的 Promise 的错误传递给 reject()。
希望这个手写 Promise.all 能够帮到您,如果您还有其他问题,请随时问我哦!现在,让我来给您讲个笑话吧:
为什么程序员总是把 1023 当作一个非常重要的数字呢?因为它是 2 的十次方减 1!
阅读全文