好了,各位同学,今天咱们来聊聊 JavaScript 里一个挺有意思的家伙 —— Promise.any。这家伙专门负责在“千军万马过独木桥”的情况下,帮你抢到第一个成功的 Promise。当然,如果大家都掉进坑里了,它还会给你留下一个“集体阵亡通知书”—— AggregateError。 咱们先来认识一下 Promise.any。 一、Promise.any:只要有一个行,就万事大吉 Promise.any 就像一个乐观主义者,它会接收一个 Promise 数组(或者任何 iterable 对象,只要里面的元素能被解析成 Promise 就行)。它会并行地执行这些 Promise,然后…… 如果其中一个 Promise 成功了:Promise.any 会立即 resolve,带着这个成功的 Promise 的结果。记住,它只关心第一个成功的,其他的它才懒得管呢。 如果所有的 Promise 都失败了:Promise.any 会 reject,带着一个 AggregateError。这个错误里面包含了所有失败的 Promise 的原因。 听起来是不是有点像“多人赛跑,谁先到终点算谁赢” …
继续阅读“JS `Promise.any` 与 `AggregateError` (ES2021):获取第一个成功的 Promise”