谁在JavaScript中的宏任务和微任务之间是第一个?

问题描述 投票:1回答:1

我很困惑事件循环首先执行哪个任务。

原因如下。

this的Stackoverflow答案

此宏任务完成后,所有可用的微任务将已处理

this博客文章的类似示例

setTimeout(() => console.log('Macro task'), 0);
Promise.resolve().then(() => console.log('Micro task'));

所以,这对我来说很混乱。直到现在我才明白。

  1. 不是回调函数的代码立即插入到调用堆栈中。
  2. setTimeout()的回调函数已插入到宏任务队列中。
  3. Promise的回调功能已插入Micro Task Queue。
  4. 当调用堆栈为空时,事件循环从Micro Task Queue中获取任务并运行。
  5. 执行所有微任务后,事件循环从宏任务队列中获取任务并运行。

这个过程是我的理解,对吗?

javascript task-queue event-loop
1个回答
0
投票

我想在脚本完成后立即检查微任务队列。在检查宏任务队列之前。

有关详细信息,请参见here。>>

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.