js Promise.all
时间: 2023-08-15 21:13:48 浏览: 113
Promise.all是JavaScript中的一个方法,它接受一个Promise数组作为参数,并返回一个新的Promise实例。
当传入的Promise数组中的所有Promise都变为resolved状态时,Promise.all返回的Promise也会变为resolved状态,并将所有Promise的结果作为一个数组传递给回调函数。
如果传入的Promise数组中有任何一个Promise变为rejected状态,Promise.all返回的Promise则会立即变为rejected状态,并将第一个被rejected的Promise的错误原因作为参数传递给回调函数。
下面是一个使用Promise.all的示例代码:
```javascript
const promise1 = Promise.resolve(1);
const promise2 = Promise.resolve(2);
const promise3 = new Promise((resolve, reject) => setTimeout(reject, 100, 'Error'));
Promise.all([promise1, promise2, promise3])
.then(values => console.log(values)) // 输出: ['Error']
.catch(error => console.log(error)); // 输出: Error
```
在上面的示例中,promise1和promise2都是resolved状态,而promise3是rejected状态。由于存在rejected状态的Promise,所以Promise.all返回的Promise也会立即变为rejected状态,并将第一个被rejected的Promise的错误原因作为参数传递给catch回调函数。
阅读全文