异步任务进入callback queue 的时机

来源:5-9 -浏览器和nodejs事件循环(Event Loop)有什么区别-浏览器

clown007

2023-01-31

我的理解如下:
异步任务执行好后,其回调函数才会进入对应的microTaskQueue、macroTaskQueue。
如定时器的回调函数,不是写了定时器后,回调函数就在立刻进macroTaskQueue里了,而是等定时器时间结束了,才会进macroTaskQueue。
promise也类似,new promise,需要等这个promise 的状态变成了 resolve 后,其.then 的回调函数才会进 microTaskQueue
不知道是否正确

写回答

2回答

天使也很坏

6天前

js引擎线程同步代码执行到setTimeout,会做两件事:

1、保存回调函数,标记task key,放在一个临时内存中

2、通知定时器触发线程,执行倒计时的任务(通过task key映射)

定时器触发线程启动了一个底层的定时任务,时间到了就会通知js引擎线程,将对应task key的函数加入宏任务队列

0
0

双越

2023-02-01

是的,没问题。

0
0

2周刷完100道前端优质面试真题 双越最新力作

『前端面试真题100道』视频详解

1525 学习 · 651 问题

查看课程