Skip to content

then 异步执行

then 的回调应该异步执行(微任务),使用 queueMicrotask 确保 then 回调在当前同步代码之后执行。

本节要点

#runHandlers 的执行用 queueMicrotask 包裹, 确保 then 的回调不会同步执行,而是注册为微任务。这样 Promise.then 的回调一定在同步代码之后执行。

#runHandlers 变更

关键变更
Loading code...

完整代码

my-promise.js
Loading code...

运行示例

示例一:then 回调在同步代码之后执行
示例代码
Loading...
示例二:多个 then 的执行顺序
示例代码
Loading...
示例三:异步 resolve + 微任务
示例代码
Loading...

循序渐进实现 Promise