node汇总

Node.js 事件循环工作流程 & 生命周期 -- Void Canvas

Node.js 事件循环工作流程 & 生命周期 -- Void Canvas_慕课手记

计时器阶段(Timer phase)的工作流程

检查在计时器队列中是否有需要执行的

悬而未决(Pengding phase)的 i/o 阶段工作流程

然后检查一下 pengding_queue 中是否有来自于之前的悬而未决的任务的回调。如果有,一个接一个的执行,直到队列为空,或者达到系统的最大限制。

Idle, Prepare 阶段

尽管名字是空闲(idle),但是每个 tick 都运行。Prepare 也在轮询阶段开始之前运行。不管怎样,这两个阶段是 node 主要做一些内部操作的阶段;

轮询阶段(Poll phase)工作流程

这是一个观察的阶段。观察是否有新的请求或者连接传入。当事件循环进入轮询阶段,它会在 watcher_queue 中执行脚本,包含文件读响应,新的 socket 或者 http 连接请求,直到时间耗尽或者像其他阶段那样达到系统依赖上限。

事件循环明明是从poll阶段进入的

https://img2.mukewang.com/5d687d1100015dcf03590331.jpg

检查阶段(Check phase)工作流程

这个阶段的队列中有被 api setImmediate 触发的回调。它将会像其他阶段那样一个接着一个的执行,直到队列为空或者达到依赖系统的最大限制。

关闭回调(Close callback)的工作流程

事件循环的下一个目的地是处理关闭或者销毁类型的回调 close callback。事件循环执行完这个阶段的队列中的回调后,它会检查循环(loop)是否还活着,如果没有,退出。但是如果还有工作要做,它会进行下一个循环;因此在计时器阶段。如果你认为之前例子中的定时器 (A & B)过期,那么现在在定时器阶段将会从定时器 C 开始检查是否过期。

nextTickQueue & microTaskQueue

它们当然在从当前阶段到下一个阶段之前尽可能快的运行。不像其他阶段,它们两个没有系统依赖的最大限制,node 运行它们直到两个队列是空的。

nextTickQueue 中的任务保留着被 process.nextTick()触发的回调。
microTaskQueue 保留着被 Promise 触发的回调。

nextTickQueue 会比 microTaskQueue 有着更高的任务优先级。
nextTickQueue 会在正在进行中的回调组(timer->close这个循环)执行完之后执行。

Node 与浏览器的 Event Loop 差异

浏览器与Node的事件循环(Event Loop)有何区别?_Fundebug的博客-CSDN博客_node事件循环和浏览器事件循环区别(事件循环机制也讲得很好)

浏览器环境下,microtask 的任务队列是每个 macrotask 执行完之后执行。而在 Node.js 中,microtask 会在事件循环的各个阶段之间执行,也就是一个阶段执行完毕,就会去执行 microtask 队列的任务

telnet的使用

Telnet模拟HTTP GET和POST方法_更程序中的博客-CSDN博客_telnet 模拟get

connect中间件

Nodejs基础中间件Connect - {前端开发} - 博客园

socket.io

socket.io 中文手册 socket.io 中文文档 - liuxixi - 博客园

express

express.static 作用及用法

express.static的路径如果是相对的,会在服务启动的环境里找

express.static 作用及用法_黎先生你好的博客-CSDN博客_express.static

express中间件next函数的实现原理

用数组形成管理回调函数,然后创建了一个index指针,next通过闭包的形式传出,自增index指针并执行函数

常见问题

关于node.js中response的end事件是否一定要先监听了data事件才能被emit

关于node.js中response的end事件是否一定要先监听了data事件才能被emit - SegmentFault 思否

给console.log添加颜色

给console.log添加颜色 - 简书

Nodejs中,path.join()和path.resolve()区别

Nodejs中,path.join()和path.resolve()区别_huang_sir_91的博客-CSDN博客_nodejs path.join

node的event对象的emitter的on和off

回调函数要相同内存地址才可以卸载监听
node调试ts文件

安装bun运行ts脚本

ts-node存在各种node版本不兼容,及一堆配置,很繁琐

NVM

1. NVM安装后无法使用node命令

  1. 检查是否启用node:nvm on命令启用
  2. 检查环境变量是否设置
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值