Promise.all异步,等异步执行完成再执行下一步
时间: 2024-10-20 16:14:50 浏览: 10
深入理解Promise.all
5星 · 资源好评率100%
Promise.all 是 JavaScript 中的一个用于处理多个 Promise 对象的方法,它接受一个 Promise 数组作为输入。这个方法会返回一个新的 Promise,只有当数组中的所有 Promise 都处于 resolved 状态并且它们的结果都可用时,新 Promise 才会被解析。如果其中任何一个 Promise 转变为 rejected,那么新 Promise 也将立即拒绝,并将最先拒绝的 Promise 的原因作为错误传递。
当你需要同步执行一系列异步操作,等待所有操作完成后才能继续下一个步骤时,可以使用 Promise.all。例如:
```javascript
const promises = [
fetch('api/data1'),
fetch('api/data2'),
fetch('api/data3')
];
Promise.all(promises)
.then(results => {
// 当所有数据请求成功后,results 将包含每个请求的结果数组
results.forEach(response => response.json().then(data => processData(data)));
})
.catch(error => {
// 如果有任何一个请求失败,这里会接收到错误信息
console.error('An error occurred:', error);
});
```
在这个例子中,`processData`函数会在所有 `fetch` 请求完成之后开始执行。如果有一个请求失败,`catch`块会捕获并处理该错误。
阅读全文