Promise.any()使用场景及实例

​​Promise.any()​​ 是 ES2021(ES12) 新增的 Promise 方法,作用非常明确:

返回「第一个成功」的 Promise 全部失败了,才会进入失败状态。


1. 基本语法

ini 复制代码
Promise.any([promise1, promise2, promise3])
  .then(firstFulfilledValue => {
    // 只要有一个成功,就进这里
  })
  .catch(error => {
    // 全部都失败,才进这里
  })

2. 简单示例

javascript 复制代码
const p1 = Promise.reject('A 失败')
const p2 = Promise.resolve('B 成功')
const p3 = Promise.reject('C 失败')

Promise.any([p1, p2, p3]).then(res => {
  console.log(res) // 'B 成功'
})

3. 全部失败时

会抛出一个 ​​AggregateError​​,里面包含所有错误:

javascript 复制代码
const p1 = Promise.reject('err1')
const p2 = Promise.reject('err2')

Promise.any([p1, p2]).catch(e => {
  console.log(e) // AggregateError
  console.log(e.errors) // ['err1', 'err2']
})

4. 和 Promise.race() 的区别(高频考点)

  • ​Promise.race()​:谁先完成就返回谁,不管成功失败
  • ​Promise.any()​:只认第一个成功的,失败的都忽略,直到全部失败

5. 和 Promise.all() 的区别

  • ​Promise.all()​:必须全部成功,一个失败就整体失败
  • ​Promise.any()​:只要一个成功,就成功

一句话总结: 想"只要有一个接口通了就行,其他挂了无所谓",就用 ​​Promise.any() ​​ 。

相关推荐
架构技术专栏4 小时前
Agent 工具调用:从工具声明到执行反馈
前端·人工智能·后端
别动我齐刘海5 小时前
C++ 工程化学习
java·linux·前端·c++·学习·机器学习·机器人
志尊宝5 小时前
Vue3 零基础每日笔记(071):暗黑模式与主题切换——CSS 变量 + Element Plus 暗黑方案
前端·css·笔记·vue·html·前端开发·软件开发
刘发财6 小时前
前端如何生成10000页PDF文件?
前端·javascript·开源
A接拉起0076 小时前
2026 年 JavaScript 开发者需要了解的知识
前端·javascript·后端
用户11481867894846 小时前
面试官:大屏项目里十几个模块同时渲染上万条数据,怎么做到不卡?
前端·性能优化
前端市界7 小时前
Pro React Admin: 统一工程底座,承载多种应用...
前端·github
葡萄城技术团队7 小时前
dsh-spreadjs-editor 当前支持什么:安装前需要了解的几件事
前端
三*一7 小时前
优化修整算法
前端·javascript·算法
weifont8 小时前
自动化抓取和上架商品:能不动手,就少动手
运维·前端·自动化