-
循环
- 本轮循环
- 次轮循环
-
任务
- 同步任务
-
异步任务
-
追加在本轮循环(紧接着同步任务执行)
- process.nextTick(所有异步任务最快)
- Promise's callback
- 追加在次轮循环
- 微任务(microtask)
-
定时器
- setTimeout
- setInterval
- setImmediate
- process.nextTick
-
Event Loop
- 1。只有一个主线程
-
2 。Node开始执行脚本时,先初始化事件循环
- 同步任务
- 发送异步请求
- 规划定时器生效时间
- 执行process.nextTick() etc
- 3 。开始事件循环
-
事件循环6阶段
- 1. timers(setTimeout, setInterval)
- 2. I/O callbacks(some finished I/O work /I/O Errors)
- 3. idle, prepare(ignore)
- 4. I/O poll(等待未返回的I/O事件)
- 5. check(setImmediate)
- 6. close callback(socket.on(''close"))