promise.all
时间: 2023-10-21 20:30:14 浏览: 31
Promise.all is a method in JavaScript that takes an array of promises and returns a new promise that resolves when all of the promises in the array have resolved. The new promise's fulfillment value is an array containing the resolved values of each promise in the original array, in the order they were provided. If any of the promises in the array are rejected, the new promise is also rejected immediately with the reason of the first rejected promise. This method is useful when you have multiple asynchronous operations that need to be completed before you can continue with a subsequent operation.
相关问题
Promise.all
Promise.all方法是将多个Promise实例包装成一个新的Promise实例,并且在所有异步操作执行完后才执行回调。它接受一个数组作为参数,数组中的每个成员都是一个Promise实例。如果参数不是数组,但具有Iterator接口且返回的每个成员都是Promise实例,也可以作为参数传入。
当作为参数的Promise实例中有一个被rejected时,Promise.all方法会立即返回一个rejected状态的Promise实例,并且不会触发Promise.all的catch方法。如果作为参数的Promise实例自己定义了catch方法,它一旦被rejected,也不会触发Promise.all的catch方法。
例如,如果有两个Promise实例p1和p2,其中p1返回了一个resolve的结果"hello",而p2抛出了一个错误。使用Promise.all([p1, p2]),会返回一个新的Promise实例。如果所有的Promise实例都是resolve状态,那么新的Promise实例的回调参数将会是一个包含所有Promise实例resolve结果的数组,即["hello", Error: 报错了]。如果其中有一个Promise实例被rejected,那么新的Promise实例会立即被rejected,并返回该rejected实例的值。
promise.all.
promise.all()方法用于将多个Promise实例包装成一个新的Promise实例。它接受一个Promise实例的数组作为参数,并返回一个新的Promise实例。当所有的Promise实例都成功时,新的Promise实例才会成功;当其中任意一个Promise实例失败时,新的Promise实例就会失败。
以下是两个关于promise.all()的示例:
1. 示例一[^1]:
```javascript
let p1 = new Promise((resolve, reject) => {
resolve('成功了');
});
let p2 = new Promise((resolve, reject) => {
resolve('success');
});
let p3 = Promise.reject('失败');
Promise.all([p1, p2]).then((result) => {
console.log(result); // ['成功了', 'success']
}).catch((error) => {
console.log(error);
});
```
2. 示例二:
```javascript
let p1 = new Promise((resolve, reject) => {
resolve('成功了');
});
let p2 = new Promise((resolve, reject) => {
resolve('success');
});
let p3 = Promise.reject('失败');
let p = Promise.all([p1, p3, p2]);
p.then((result) => {
console.log(result);
}).catch((error) => {
console.log(error); // 失败了,打出 '失败'
});
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)