js手写实现promise.all
时间: 2023-08-31 10:08:47 浏览: 125
当然,我可以帮你手写实现 `Promise.all`。以下是一个简单的实现示例:
```javascript
function promiseAll(promises) {
return new Promise((resolve, reject) => {
const results = [];
let completedPromises = 0;
if (promises.length === 0) {
resolve(results);
}
for (let i = 0; i < promises.length; i++) promises[i]
.then(result => {
results[i] = result;
completedPromises++;
if (completedPromises === promises.length) {
resolve(results);
}
})
.catch(reject);
}
});
}
```
这个实现接受一个 Promise 数组作为参数,并返回一个新的 Promise。它会等待所有的 Promise 都完成后,才会返回一个包含所有结果的数组。
请注意,个实现假设传入的参数是一个有效的 Promise 数组。如果其中任何一个 Promise 被拒绝,整个 `Promise.all` 将被拒绝,并返回被拒绝的原因。
希望这个实现能满足你的需
阅读全文
相关推荐
![js](https://img-home.csdnimg.cn/images/20250102104920.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)