1
Amy 原创整理|资料核验:2026-10-30
MDN说明,Promise.any()接收一组Promise,在其中第一个兑现成功时返回该结果;如果全部拒绝,则以AggregateError拒绝。传入空集合也会拒绝,并不会返回一个“没有结果但成功”的状态。
教学情境:两项彼此独立的查询中,A先失败、B稍后成功,Promise.any仍可以返回B的成功值。它适合“取得任意一个成功结果”的需求,而不是收集所有任务结果。
若全部失败,AggregateError的errors数组按输入Promise的顺序排列,而非按失败先后排列。Amy建议:错误日志同时记录任务名称与输入位置,避免把数组第一项误认为最早故障。也应先定义什么算业务成功:Promise兑现只是程序状态,仍需由查询代码判断返回内容是否满足业务要求。
官方来源:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/any