我是NodeJS的新手,我对事件循环的工作原理感到困惑。
首先,如果我有一个空文件(假设它叫做blank.js),并且我用节点(node blank.js
)运行它,那么节点运行该文件并立即退出。为什么事件循环没有开始,是什么让它开始?
其次,当在NodeJS上运行服务器时,服务器实际上在等待输入(即客户端请求)。它在等待时发生了什么,它是如何等待的(它不是在睡觉,我确信它会阻止事件循环)。已经描述了节点的方式,它是偶然的(因此它正在等待一个事件),但它是如何做到的呢?
最后,Ryan Dahl将Node描述为单个堆栈。我认为由于Node的事件性质,函数调用没有像递归调用中那样的堆栈。这是对的吗?
总结一下我的问题:
我已阅读有关NodeJS的书籍,是的,我意识到Nodes是异步单线程非阻塞IO。我只是不知道内部是如何工作的,没有一本书告诉我这个。