对 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

posted @ 2021-10-31 15:54  暗恋桃埖源  阅读(114)  评论(0编辑  收藏  举报