Node.js 异步编程 · 事件循环
30 章 · 从基石到实战
01
异步编程基石
同步/阻塞 vs 异步/非阻塞 · Node.js 为何选择异步
02
事件循环六阶段
timers · pending · idle/prepare · poll · check · close
03
微任务与宏任务
nextTick · Promise · async/await 优先级与执行时机
04
定时器深入
setTimeout/setInterval 原理 · 延迟精度 · 事件循环位置
05
setImmediate & nextTick
区别 · 场景 · 为什么 nextTick 先执行
06
I/O 回调与 poll 阶段
阻塞机制 · 事件处理 · 避免事件循环饥饿
07
close 回调阶段
socket.on('close') · stream.destroy · 最佳实践
08
异步资源管理
Async Hooks API · 跟踪异步资源生命周期
09
回调地狱与解耦
传统回调问题 · 错误处理 · 命名函数/模块化
10
Promise 基础
三种状态 · 链式调用 · catch/finally · 微观机制
11
Promise 进阶
all · race · allSettled · any 对比与实战
12
async/await 语法糖
async 本质 · await 暂停/恢复 · try/catch 优雅错误
13
异步迭代器
for-await-of · 流式数据 · 分页 API 调用
14
EventEmitter
自定义事件 · 内存泄漏 · once vs on
15
Stream 流基础
Readable/Writable/Transform/Duplex · pipe
16
背压机制
速度匹配 · 手动控制背压 · 流式优化
17
文件系统异步
fs 异步 API · Promise 化 · 大文件读取优化
18
网络编程异步
HTTP 事件循环 · TCP socket · keep-alive
19
进程与子进程
child_process · spawn/exec · 进程间通信
20
Worker Threads
多线程实现 · 数据传递 · 使用时机
21
Cluster 模块
多进程负载 · 共享端口 · 优雅重启
22
异步错误处理
错误传播 · uncaughtException · unhandledRejection
23
异步上下文追踪
AsyncLocalStorage · 请求级别上下文传递
24
性能监控与调试
perf_hooks · 火焰图 · 事件循环延迟检测
25
事件循环阻塞优化
CPU 任务拆分 · setImmediate 调度 · 避免阻塞
26
定时器与时间精度
process.hrtime · performance.now · Date.now 差异
27
异步队列与限流
任务队列 · 并发控制 · 重试机制设计
28
异步测试
Jest/Mocha · 模拟定时器 · 事件循环测试
29
异步设计模式
发布订阅 · 观察者 · 反应器模式在 Node.js 中
30
综合实战:异步日志系统
Stream + EventEmitter + Worker Threads 构建