promise.all 异步执行
时间: 2023-11-25 11:51:47 浏览: 29
`Promise.all()`方法可以并行执行多个异步操作,并在所有异步操作完成后执行回调函数。它接受一个由Promise对象组成的数组作为参数,返回一个新的Promise对象,该对象在所有Promise对象都已成功解决时解决,并将每个Promise对象的解决值作为数组传递给回调函数。
以下是一个使用`Promise.all()`方法的示例,其中我们使用`setTimeout()`模拟异步操作:
```javascript
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 1 resolved');
}, 2000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 2 resolved');
}, 1000);
});
Promise.all([promise1, promise2]).then((values) => {
console.log(values);
});
```
在上面的示例中,`Promise.all()`方法接受一个包含两个Promise对象的数组作为参数。在2秒后,`promise1`对象将被解决,并返回一个字符串。在1秒后,`promise2`对象将被解决,并返回另一个字符串。当两个Promise对象都已成功解决时,`Promise.all()`方法将返回一个新的Promise对象,并将两个解决值作为数组传递给回调函数。在这种情况下,回调函数将打印以下内容:
```
[ 'Promise 1 resolved', 'Promise 2 resolved' ]
```