当需要同时处理多个异步任务时,可以使用 Promise.allSettled()
将所有 Promise 对象包装成一个新的 Promise 对象
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 1');
}, 1000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 2');
}, 2000);
});
const promise3 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 3');
}, 3000);
});
Promise.allSettled([promise1, promise2, promise3])
.then(results => {
results.forEach(result => {
if(result.status === 'fulfilled') {
console.log('成功获取值:', result.value);
} else {
console.error('拒绝原因:', result.reason);
}
});
});