js 同时处理多个 promise 全部结束
时间: 2024-09-13 15:13:44 浏览: 28
JavaScript 中同时处理多个 Promise 全部结束,可以使用 Promise.all() 或者 async/await 结合 Promise.all() 来实现。这两个方法都可以让你等待一组 Promise 全都成功后再继续后续操作。
1. **Promise.all()**:
```javascript
const promises = [promise1, promise2, promise3];
Promise.all(promises)
.then(values => {
// 当所有 Promise 都成功完成,values 数组包含了每个 Promise 的 resolve 值
console.log('All promises resolved:', values);
})
.catch(error => {
// 如果任何一个 Promise 转变成拒绝状态(reject),整个 Promise.all 就会立即 reject
console.error('One or more promises rejected:', error);
});
```
2. **async/await with Promise.all()**:
```javascript
async function processPromises() {
try {
const results = await Promise.all([promise1, promise2, promise3]);
console.log('All promises resolved:', results);
} catch (error) {
console.error('One or more promises rejected:', error);
}
}
processPromises();
```
这两种方式都能保证 Promise 执行的顺序性和同步感,只有当所有 Promise 都成功(resolve)时,才会进入 `.then()` 或 `.catch()` 区块。
阅读全文