手写一个promise.all代码
时间: 2023-07-24 07:00:26 浏览: 101
js代码-手写promise.all
当然,下面是一个手写的`promise.all`的简单实现代码:
```javascript
function customPromiseAll(promises) {
return new Promise((resolve, reject) => {
let results = [];
let completedPromises = 0;
for (let i = 0; i < promises.length; i++) {
promises[i]
.then((result) => {
results[i] = result;
completedPromises++;
if (completedPromises === promises.length) {
resolve(results);
}
})
.catch(reject);
}
});
}
```
这个`customPromiseAll`函数接受一个包含多个promise的数组作为参数,并返回一个新的promise。它会等待所有的promise都完成后,将结果以数组的形式传递给`resolve`函数。
注意:这只是一个简单的示例,实际上`promise.all`还需要处理一些边界情况,比如传入空数组、非promise对象等。在实际开发中,建议使用原生的`Promise.all`方法。
阅读全文