Promise核心是“状态驱动+任务调度+链式流转”:以Pending→Fulfilled/Rejected三角状态机为基底,微任务队列保障执行时序,.then/.catch/.finally通过返回新Promise实现链式流转,all/race/allSettled/any复用状态聚合与微任务机制。

Promise 核心知识点思维导图不是罗列所有 API,而是抓住“状态驱动 + 任务调度 + 链式流转”三条主线来组织。重点不在记住多少方法,而在理解它们如何协同工作。
一、从状态机开始画中心节点
把 Pending → Fulfilled / Rejected 作为思维导图最核心的三角结构。这是 Promise 的底层契约:
- 初始状态只能是 pending,且不可逆;resolve 和 reject 是唯一合法切换方式
- 一旦状态改变,value 或 reason 就被锁定,后续调用 resolve/reject 无效
- 状态变化会触发对应队列里的回调(onFulfilledCallbacks / onRejectedCallbacks)
二、围绕微任务机制画执行时序分支
在中心状态旁延伸出“微任务队列”分支,标注关键事实:
-
.then()、.catch()、.finally()注册的回调,都会被放入微任务队列 - 每个宏任务(如 setTimeout)执行完后,会清空当前全部微任务,再取下一个宏任务
- 这意味着:Promise 回调总比 setTimeout 先执行,哪怕 setTimeout 设为 0ms
三、用链式返回画方法关系网
单独开辟“实例方法返回值”子区域,强调三个方法的共性与差异:
Node.js 可靠编程技能。避免事件循环阻塞、异步陷阱、ESM 兼容问题和内存泄漏。触发词:Node.js 开发、async/await、流处理、性能优化、安全编码。
-
.then(onFulfilled, onRejected):总是返回一个新 Promise;onFulfilled 返回值会被Promise.resolve()包装;抛错则自动进入下一个 .catch -
.catch(onRejected):本质是.then(null, onRejected)的语法糖,只捕获前序 Promise 的 rejected 状态 -
.finally(cb):不接收 value/reason,也不影响状态流转,但若 cb 返回 Promise 或 throw 错误,会影响最终结果
四、补充并发控制类方法作为外围模块
在思维导图边缘列出四个静态方法,用箭头指向它们依赖的核心机制:
-
Promise.all([...]):全部 fulfilled 才 resolve,任一 rejected 就立即 reject -
Promise.race([...]):谁先 settle(fulfill 或 reject),就以谁的结果为准 -
Promise.allSettled([...]):不管成败,等全部结束,返回每个 Promise 的状态对象 -
Promise.any([...]):首个 fulfilled 即 resolve;全 rejected 才 reject(AggregateError)
这些方法背后都复用同一个原则:状态聚合 + 微任务调度 + 新 Promise 构造。










