怎么理解Javascript的Event Loop

发布于 2022-09-02 10:47:46 字数 338 浏览 17 评论 0

举个例子:

setTimeout(() => { console.log('Hello') }, 1000);
for(var i = 0; i < 100000; i++) {
  console.log(i);
}

在执行setTimeout的时候,一个1s的定时器应该就会被启动。然后继续执行下面的的for循环。那么在执行for循环的时候(至少前1s的时间段内),这个定时器也同时在ticking。

但JS程序在运行过程中是单线程的,那是不是说这个定时器其实是由其他外部的库或工具执行的,比如Node中的libuv?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

木槿暧夏七纪年 2022-09-09 10:47:46

这个问题挺复杂的,转载一篇文章,希望有帮助
http://blog.csdn.net/binzai325/article/details/11773481

跨年 2022-09-09 10:47:46

setTimeout()会在1s以后加入到事件队列中,也就是说,并不是在启动定时器后1s执行函数。在你上面的例子中,会在for循环完成以后,将定时器里的函数加入到事件队列并在1s以后执行。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文