promise.all 实例
时间: 2023-08-31 18:09:10 浏览: 86
promise处理多个相互依赖的异步请求(实例讲解)
当使用Promise.all方法时,我们可以将多个Promise对象作为参数传递给它,然后它将返回一个新的Promise对象。这个新的Promise对象将在所有传入的Promise对象都被解决(resolved)后被解决,并返回一个包含所有解决结果的数组。
下面是一个使用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);
})
.catch((error) => {
console.log(error);
});
```
在上面的代码中,我们创建了三个Promise对象,每个对象都使用setTimeout模拟异步操作。使用Promise.all将这三个Promise对象作为参数传递给它,然后通过.then方法处理解决结果。
在所有的Promise对象都被解决后,结果将作为一个数组传递给.then回调函数,打印出结果:["Promise 1 resolved", "Promise 2 resolved", "Promise 3 resolved"]。
如果其中一个Promise对象被拒绝(rejected),则会立即进入.catch回调函数,并打印出拒绝的原因。这是Promise.all的一个特性,如果任何一个Promise对象被拒绝,整个Promise.all就会被拒绝。
阅读全文