``` Promise.all ```
时间: 2024-07-07 11:01:12 浏览: 35
深入理解Promise.all
5星 · 资源好评率100%
`Promise.all` 是 JavaScript 的一个内置 Promise 方法,用于同时处理多个 Promise 对象。当你有一个数组或类似的数据结构,其中包含了多个 Promise 实例时,可以使用 `Promise.all` 来等待所有这些 Promise 都成功(状态变为 resolved)或者有一个失败(状态变为 rejected)。
`Promise.all` 的语法如下:
```javascript
Promise.all(arrayOfPromises).then(succeededHandler, failedHandler);
```
- `arrayOfPromises`:这是一个 Promise 对象的数组。每个 Promise 代表一个异步操作。
- `succeededHandler`:这是在所有 Promise 都成功执行后被调用的函数,参数是一个数组,包含每个 Promise 执行结果的值。如果所有 Promise 都是 resolved,这个数组的元素顺序与原数组相同;如果有任何一个 Promise 是 rejected,则只执行 `failedHandler`。
- `failedHandler`:这是当至少有一个 Promise 被 rejected 时调用的函数,参数是第一个 rejected 的 Promise 的 rejection reason。
示例:
```javascript
const promises = [
fetch('https://api.example.com/data1'),
fetch('https://api.example.com/data2'),
fetch('https://api.example.com/data3')
];
Promise.all(promises)
.then(results => {
console.log('All fetches successful:', results);
})
.catch(error => {
console.error('One or more fetches failed:', error);
});
```
在这个例子中,如果所有三个 `fetch` 请求都成功,那么 `results` 数组将包含它们的响应数据;如果有任何一个请求失败,`catch` 块将捕获并打印错误信息。
阅读全文