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

事件循环 可视化网站

理解

Call Stack 调用栈;

Callback Queue (也叫 Task Queue回调队列 也叫 任务队列

Web Apis 浏览器提供的一些方法。(如 setTimeoutDOMclick 等 );

JavaScript 执行代码是 只会从 Call Stack 栈中执行;

Web Apis 是浏览器(Node) 提供的一些 api,(如 setTimeoutDOMclick 等),
当 运行 setTiemout(cb, 1000), setTiemout 会在 放到 中,它会向 WebApis 提交 timer。让 WebApis 去执行,具体的倒计时,
Web Apis 发现一个 callback 到了 要执行的 时候,会把它放到 任务队列(回调队列)中去;

EventLoop 的职责 是 观察 Call Stack (调用栈) 中是否已空,如果空了,就从 任务队列中 取出一个,放到 栈 中去执行;

就这样循环下去。。。

参考

到底什么是Event Loop呢?

YouTube 视频,需要FQ

原文地址:https://www.cnblogs.com/taohuaya/p/15489768.html