用js写一个promiseAll
时间: 2023-11-21 13:56:10 浏览: 140
js代码-手写promise.all
好的,以下是一个使用 JavaScript 编写的 Promise.all() 的示例代码:
```
function promiseAll(promises) {
return new Promise(function(resolve, reject) {
var results = [];
var remaining = promises.length;
if (remaining === 0) {
resolve(results);
}
function handleResult(i, result) {
results[i] = result;
remaining--;
if (remaining === 0) {
resolve(results);
}
}
for (var i = 0; i < promises.length; i++) {
promises[i].then(handleResult.bind(null, i), reject);
}
});
}
```
这个 promiseAll 函数接收一个 Promise 数组作为参数,并返回一个新的 Promise。当传入的所有 Promise 都成功 resolve 时,返回的 Promise 也会 resolve,并返回所有 Promise 结果组成的数组;如果其中任意一个 Promise reject,则返回的 Promise 会 reject,并返回该 Promise 的错误信息。
阅读全文