在JavaScript中,事件循环用于引擎。这是一张图来说明这个article。
对于Node.js,事件循环也在这里实现。引用这个question。
Node.js事件循环在单个线程下运行,这意味着您编写的应用程序代码在单个线程上进行评估。 Nodejs本身使用了libuv下面的许多线程,但是在编写nodejs代码时你永远不必处理那些线程。
但是,关于node.js事件循环,我仍然是抽象的。
这两个事件循环之间有什么区别?
没有。 Nodejs是JavaScript引擎1。
1:或者更确切地说,其中一个,还有其他引擎实现相同的语言和相同的事件循环概念。
是否有任何图像可以更清楚地介绍它?
有许多。但我觉得动画效果更好:-) Philip Roberts的This jsconf talk在各地都受到称赞。
Nodejs事件循环的实现方式与基于浏览器的事件循环不同。
这是Nodejs社区中一个巨大的混乱点。
虽然Nodejs使用谷歌V8作为它的运行时,但它没有使用V8来实现事件循环。
Nodejs使用Libuv库(用C ++编写)来实现事件循环。
上面的图表(适用于JS事件循环)与Node Js事件循环不同。
为了完全理解Nodejs事件循环,您应该学习三个参考: