我最近开始弄清楚什么是事件循环,这让我很困惑,似乎我不知道nodejs是如何工作的。我的意思是,当程序启动时,加载到内存中-下一步是什么?
我在事件循环中看不到所有同步的地方。代码执行(就像计算某些东西的for/ while循环)..这不是意味着V8会执行JavaScript并在需要时启动事件循环吗?
如果有人能帮助并解释nodejs运行时是如何在高层运行的,那就太好了
发布于 2018-10-29 03:22:09
我强烈推荐阅读这篇Asynchrony: Now & Later
我将引用一些我曾经读过的东西。
.
JS引擎对异步代码一无所知,它一次只执行代码,finishes..no更多而不是更少
JS主机环境具有事件循环概念的实现,其中代码现在(将来)不需要运行,正在等待(假设是网络调用/ io调用)完成处理并被调用(被添加到事件循环的事件队列中,然后在下一个节拍执行)
在程序开始时,我100%确定,但我认为所有代码都被添加到事件队列(事件循环的实现方式),并以先进先出(FIFO)的方式处理,这意味着第一个代码执行得越早,在运行时,如果一些代码需要停止,比如setTimeout或IO进程,或者Ajax调用(这两个都需要时间),则由它们决定是否使用回调(这里的回调被添加到事件队列中),并且由事件循环负责执行这些回调,以便它们在下一个未来的节拍到达。
https://stackoverflow.com/questions/53035043
复制相似问题