手写 `Promise.all`:如果其中一个 reject 了,如何处理剩余的请求?

手写 Promise.all:当其中一个 reject 时,如何优雅处理剩余请求? 大家好,欢迎来到今天的专题讲座。今天我们不讲“Hello World”,也不讲“闭包”或“原型链”。我们来聊聊一个看似简单、实则暗藏玄机的 JavaScript 高阶特性 —— Promise.all。 你可能已经用过 Promise.all([…]),比如并发发起多个 API 请求,等它们都成功后再统一处理结果。但如果你只停留在“它能跑起来”的层面,那今天的内容将彻底改变你的认知。 一、什么是 Promise.all?它的默认行为是什么? 先从基础开始。Promise.all 是 ES6 引入的一个静态方法,用于并行执行一组 Promise,并在所有 Promise 成功完成时返回一个包含所有结果的数组;如果其中任意一个 Promise 失败(reject),整个 Promise.all 就会立即失败(reject),不会等待其他 Promise 完成。 const p1 = Promise.resolve(1); const p2 = Promise.resolve(2); const p3 = …