对 JS 事件循环(Event Loop)的理解

理解
Call Stack 调用栈;
Callback Queue (也叫 Task Queue) 回调队列 也叫 任务队列;
Web Apis 浏览器提供的一些方法。(如 setTimeout , DOM 的 click 等 );
JavaScript 执行代码是 只会从 Call Stack 栈中执行;
Web Apis 是浏览器(Node) 提供的一些 api,(如 setTimeout , DOM 的 click 等),
当 运行 setTiemout(cb, 1000), setTiemout 会在 放到 栈 中,它会向 WebApis 提交 timer。让 WebApis 去执行,具体的倒计时,
Web Apis 发现一个 callback 到了 要执行的 时候,会把它放到 任务队列(回调队列)中去;
EventLoop 的职责 是 观察 Call Stack (调用栈) 中是否已空,如果空了,就从 任务队列中 取出一个,放到 栈 中去执行;
就这样循环下去。。。
参考
YouTube 视频,需要FQ

浙公网安备 33010602011771号