Promise.all() 和 Promise.race()
在 Promise 中,有两个静态方法可以用于管理多个 Promise 对象:Promise.all() 和 Promise.race()。
Promise.all() 方法接收一个 Promise 对象数组作为参数,并返回一个新的 Promise 对象。返回的 Promise 对象在所有输入的 Promise 对象都变为 fulfilled 状态时被 fulfilled,并且将所有 Promise 对象的结果按顺序以数组形式返回。如果其中任何一个 Promise 对象变为 rejected 状态,则返回的 Promise 对象也会立即变为 rejected 状态,并且该 Promise 对象的结果是第一个变为 rejected 状态的 Promise 对象的错误信息。
Promise.all() 方法的使用示例:
const promise1 = Promise.resolve(1);
const promise2 = Promise.resolve(2);
const promise3 = Promise.resolve(3);
Promise.all([promise1, promise2, promise3])
.then(results => {
console.log(results); // 输出 [1, 2, 3]
})
.catch(error => {
console.error(error);
});
Promise.race() 方法接收一个 Promise 对象数组作为参数,并返回一个新的 Promise 对象。返回的 Promise 对象在其中任何一个输入的 Promise 对象变为 fulfilled 或 rejected 状态时立即变为相应的状态,并且将第一个变为 fulfilled 或 rejected 状态的 Promise 对象的结果作为该 Promise 对象的结果。
Promise.race() 方法的使用示例:
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 1 resolved');
}, 1000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
reject('Promise 2 rejected');
}, 2000);
});
Promise.race([promise1, promise2])
.then(result => {
console.log(result); // 输出 'Promise 1 resolved'
})
.catch(error => {
console.error(error);
});
Promise.all() 和 Promise.race() 两个方法可以在需要管理多个 Promise 对象的情况下提供便利。Promise.all() 可以等待所有 Promise 对象都完成,并统一处理它们的结果,而 Promise.race() 可以等待只需要一个 Promise 对象完成即可,并使用其结果。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」