Promise 是前端异步编程的基础,几乎每天都在用。但很多同学只停留在 then/catch/finally 的使用层面,对内部状态流转、链式调用、微任务机制一知半解。
本文带你手写一个符合 PromiseA+ 规范的简易版 Promise,不依赖任何库,看完就能彻底理解它的工作原理。
一、先回顾 Promise 核心特性
1. 三种状态: pending / fulfilled / rejected 2. 状态一旦改变不可逆转 3. 支持 then 链式调用 4. 支持 catch 捕获异常 5. 支持 finally 6. 构造函数接收 executor 函数,同步执行