一.node四种定时器
- setTimeout();
- setInterval();
- setImmediate();
- process.nextTick(): 异步任务中最快执行
二.同步任务,异步任务
- 同步任务总是比异步任务更早执行。
三.本轮循环,次轮循环
- 异步任务:本轮循环的异步任务和次轮循环的异步任务;
- 本轮循环:process.nextTick(),Promise;
次轮循环:setTimeout,setInterval,setImmediate; - 本轮循环一定早于次轮循环执行。
四.微任务
- Promise回调函数属于微任务,且属于本轮循环
五.事件循环六个阶段(顺序执行)
- timers: setTimeout(),setInterval();
- I/O callbacks
- idle,prepare
- poll: 轮询时间,eg:服务器的回应,用户移动鼠标
- check: setImmediate()
- close,callbacks: 执行关闭请求的回调函数,eg:socket.on('close', ...)