2

可能重复:
node.js 的内部结构。它实际上是如何工作的

我是 NodeJS 的新手,我对事件循环的工作方式感到困惑。

首先,如果我有一个空白文件(假设它被称为 blank.js),并且我使用 node ( node blank.js) 运行它,那么 node 运行该文件并立即退出。为什么事件循环没有开始,是什么让它开始的?

其次,当在 NodeJS 上运行服务器时,服务器实际上是在等待输入(即客户端请求)。它在等待时发生了什么,它是如何等待的(它不是在睡觉,我确信它会阻止事件循环)。已经描述了节点的方式,它是事件的(因此它正在等待一个事件),但是它是如何做到的呢?

最后,Ryan Dahl 将 Node 描述为一个单一的堆栈。我认为由于 Node 的事件性质,函数调用不像递归调用中那样具有堆栈。这个对吗?

所以总结一下我的问题:

  1. 什么启动事件循环,它是如何启动的?
  2. 当 Node 处于等待状态时(这是非阻塞的),这是如何实现的呢?
  3. 用于回调的函数的函数内存堆栈会发生什么变化?

我读过有关 NodeJS 的书籍,是的,我意识到 Nodes 是异步单线程非阻塞 IO。我只是不知道内部是如何工作的,也没有书告诉我这一点。

4

0 回答 0