小编Iev*_*iii的帖子

像“点击”这样的事件是宏任务吗?

代码:

setTimeout(() => console.log(1), 10);
for (let i = 0; i < 3e9; i++) {}
console.log(0);
window.onclick = () => console.log('click');
Run Code Online (Sandbox Code Playgroud)

运行此脚本时:

所以我有两个问题:

  1. 如果“点击”是一个宏任务,那么它应该在 setTimeout 后进入宏任务回调队列吗?这样当同步代码完成时,堆栈为空,宏任务回调队列将console.log(0) 放入堆栈,堆栈执行它,然后回调队列将console.log('click') 放入堆栈并堆栈执行它。
  2. 如果我在第 2 行的同步代码运行时单击,为什么我会在控制台中看到“单击”?我在 executor 到达第 4 行之前点击了...

javascript event-loop

3
推荐指数
1
解决办法
55
查看次数

标签 统计

event-loop ×1

javascript ×1