Node.js 事件循环的工作流程

Node.js 的事件循环由六个主要阶段组成,每个阶段都有一个或多个回调队列。事件循环依次遍历这些阶段,并在每个阶段执行相应的回调函数。具体的流程如下:

  1. Timers(计时器阶段)

    • 执行已到期的 setTimeoutsetInterval 回调。这里的计时器并不保证会在精确的时间执行,只会在接近的时间执行。
  2. I/O Callbacks(I/O 回调阶段)

    • 执行几乎所有的回调(除了关闭的回调函数、计时器的回调函数和 setImmediate 的回调函数)。这包括一些操作系统层面的回调,如网络通信的回调。
  3. Idle, Prepare(空闲,准备阶段)

    • 仅在内部使用。一般不涉及开发者的代码。用于 node.js 内部调用。
  4. Poll(轮询阶段)

    • 计算轮询的超时时间。

    • 处理轮询队列中的事件。

    • 检索新的 I/O 事件,执行 I/O 回调(几乎所有的 I/O 都在这里进行),在适当的时候回阻塞在这里。轮询阶段有两个主要功能:
  5. Check(检查阶段)

    • 执行 setImmediate 回调函数。setImmediatesetTimeout 的区别在于,setImmediate 设计为在当前轮询阶段结束后立即执行,而 setTimeout 则需要等到下一个计时器阶段。
  6. Close Callbacks(关闭回调阶段)

    • 执行一些关闭回调函数,如 socket.on('close', ...)
相关推荐
摇滚侠2 小时前
搭建前端开发环境 安装 nodejs 设置淘宝镜像 最简化最标准版本 不使用 NVM NVM 高版本无法安装低版本 nodejs
java·开发语言·node.js
tumeng07119 小时前
Node.JS 版本管理工具 Fnm 安装及配置(Windows)
windows·node.js
xrkhy10 小时前
MacOS M3 安装nvm以及node.js
macos·node.js
xiaohe0711 小时前
Node.js NativeAddon 构建工具:node-gyp 安装与配置完全指南
node.js
不愿透露姓名的大鹏12 小时前
Linux环境下Node.js后台运行方式(实用版)
linux·运维·node.js
学习3人组12 小时前
windows系统下nvm的安装
node.js·nvm
sunwenjian88612 小时前
node.js下载、安装、设置国内镜像源(永久)(Windows11)
node.js
#做一个清醒的人12 小时前
Electron 保活方案:用子进程彻底解决原生插件崩溃问题
前端·electron·node.js
云天00113 小时前
前端私活神器,nodejs+vue3+typescript全栈框架,
前端·后端·node.js
吴声子夜歌13 小时前
Node.js——WebSocket
websocket·网络协议·node.js