NodeJs事件的循环顺序阶段

时间:2019-07-02 05:58:10

标签: node.js

来自docs

以下阶段简要概述了事件循环的操作顺序。

  

阶段概述

     
      
  1. 计时器:此阶段执行由setTimeout()和   setInterval()
  2.   
  3. 待处理的回调:执行推迟到的I / O回调   下一个循环迭代。
  4.   
  5. 空闲,准备:仅在内部使用。
  6.   
  7. 投票:检索新的I / O事件;执行与I / O相关的回调(几乎所有   除了close回调,计时器安排的回调,   和setImmediate());适当时,节点将在此处阻塞。
  8.   
  9. 检查setImmediate()个回调在此处被调用。
  10.   
  11. 关闭回调:一些关闭回调,例如socket.on('close', ...)
  12.   
     

在事件循环的每次运行之间,Node.js会检查它是否正在等待任何异步I / O或计时器,如果没有,则将其完全关闭。

文档未阐明操作顺序是否严格。 例如,假设您处于 Check 阶段,并且有来自轮询阶段的回调。

节点会跳过其他阶段以立即进入轮询阶段吗?否则它将遍历所有阶段?

0 个答案:

没有答案