Skip to content

异步 resolve/reject

当 resolve/reject 是异步调用时,then 执行时状态还是 pending,需要用 #handlers 存储回调,等状态变更后再执行。

本节要点

新增 #handlers 属性存储回调函数。then 中如果状态为 pending,将回调存入 #handlers。 #setState 在变更状态后调用 #handlers() 执行存储的回调。

#setState 变更

#setState 变更
Loading code...

完整代码

my-promise.js
Loading code...

运行示例

示例一:异步 resolve
示例代码
Loading...
示例二:异步 reject
示例代码
Loading...
示例三:先注册 then,后 resolve
示例代码
Loading...

循序渐进实现 Promise