promise().all
时间: 2023-10-31 07:59:36 浏览: 81
Promise.all()方法接收一个由promise对象组成的数组作为参数,并返回一个新的promise对象。该新的promise对象在所有输入的promise都完成时才会完成,返回值是一个数组,包含了所有输入promise对象的结果值。
使用Promise.all()可以将多个异步操作并行执行,并等待它们全部完成后再进行下一步操作。如果传入的promise数组中有任何一个promise被拒绝(rejected),那么Promise.all()返回的promise对象也会被拒绝,并返回第一个被拒绝的promise的结果值。
下面是一个例子,展示了如何使用Promise.all()来等待多个异步操作的完成,并获取它们的结果值:
```javascript
// 创建三个异步操作的promise对象
let p1 = new Promise((resolve, reject) => {
resolve('ok1');
});
let p2 = new Promise((resolve, reject) => {
reject('ok2');
});
let p3 = new Promise((resolve, reject) => {
resolve('ok3');
});
// 使用Promise.all()等待这三个异步操作完成
const result = Promise.all([p1, p2, p3]);
result.then(values => {
console.log(values); // ['ok1', 'ok2', 'ok3']
}).catch(error => {
console.log(error); // 'ok2'
});
```
在上述例子中,由于p2的promise被拒绝了,所以Promise.all()返回的promise也会被拒绝,并返回了p2的拒绝值'ok2'。如果所有的promise都被解决(resolved),那么Promise.all()返回的promise将会被解决,并返回一个包含了所有promise结果值的数组。
因此,使用Promise.all()可以方便地处理多个异步操作,并在它们全部完成后进行下一步操作。
阅读全文