我想知道node.js终止事件循环的条件是什么。 node.js如何确定不会触发其他事件?对于例如在http客户端或文件读取应用程序的情况下。
答案 0 :(得分:-2)
我建议你观看这个精彩视频Philip Roberts: What the heck is the event loop anyway? | JSConf EU 2014
简单地说,Javascript运行时一次可以做一件事,因此它被称为“单线程”。但是,你有理由我们可以像HTTP请求那样同时做事......等等,因为他在视频上称之为浏览器的“浏览器API”,对于像Node.js这样的后端环境,它是C ++ API。 现在,任何这些“外部”API调用(如HTTP客户端调用)都会被推送到任务队列。事件循环有一个非常简单的工作。如果主callstack为空并且将其推送到执行/运行堆栈,它将始终从任务队列中获取一个作业。因此,当任务队列中没有作业(外部API调用)时,事件循环将终止
我建议观看整个视频以便更好地理解:)