在JavaScript中,可以使用Promise.all()
方法来并行地等待多个承诺。
下面是一个示例代码:
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.error(error);
});
上面的代码创建了三个承诺对象promise1
、promise2
和promise3
,每个承诺对象在不同的时间间隔后解决。然后,使用Promise.all()
方法并行地等待这三个承诺,并在它们都解决后获取结果。
在Promise.all()
的回调函数中,可以访问到一个包含所有承诺结果的数组results
,并将其打印到控制台。
注意,如果其中任何一个承诺被拒绝(rejected),Promise.all()
将立即返回拒绝的承诺,并跳过其他正在等待的承诺。因此,在使用Promise.all()
时要格外小心处理错误。