Promise.all()
时间: 2023-10-31 13:59:35 浏览: 67
Promise.all() 是一个 JavaScript 方法,它接受一个 Promise 对象数组作为参数,并在所有的 Promise 对象都被解决(resolved)或有一个被拒绝(rejected)时返回一个新的 Promise 对象。
使用 Promise.all() 可以将多个异步操作并行执行,当所有操作都完成时,Promise.all() 返回的 Promise 对象会解决(resolve),并将所有操作的结果作为一个数组传递给回调函数。如果任何一个操作被拒绝(rejected),则返回的 Promise 对象会被拒绝,并将第一个被拒绝的操作的错误信息作为参数传递给回调函数。
下面是一个使用 Promise.all() 的示例代码:
```javascript
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 1 resolved');
}, 2000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 2 resolved');
}, 3000);
});
const promise3 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 3 resolved');
}, 1000);
});
Promise.all([promise1, promise2, promise3])
.then(results => {
console.log(results); // ["Promise 1 resolved", "Promise 2 resolved", "Promise 3 resolved"]
})
.catch(error => {
console.error(error);
});
```
在上面的代码中,我们创建了三个 Promise 对象,分别是 promise1、promise2 和 promise3。每个 Promise 对象都会在一定时间后被解决(resolved)。使用 Promise.all() 方法,我们将这三个 Promise 对象作为参数传递给它。当所有的 Promise 对象都被解决时,Promise.all() 返回的 Promise 对象也会被解决,并将所有操作的结果作为一个数组传递给 then() 方法中的回调函数。
注意,如果其中任何一个 Promise 对象被拒绝(rejected),则返回的 Promise 对象会被拒绝,并将第一个被拒绝的操作的错误信息作为参数传递给 catch() 方法中的回调函数。