//process.nextTick( )
setTimeout( )
setImmediate( ) //
nodejs的事件輪詢機制: 借助libuv庫來實現的
事件輪詢機制主要分為六個階段:
1.timers 計時器階段
計時和執行到點的定時器回調函數
2.pending callbacks
某些系統操作(如tcp錯誤類型)的回調函數
3.idle ,prepare
准備工作
4.poll 輪詢階段(輪詢隊列)
如果輪詢隊列不為空,依次同步取出輪詢隊列中第一個回調執行,知道輪詢隊列為空或者達到系統最大的限制
如果輪詢隊列為空
如果之前設置過setImmediate函數
直接進入下一個check階段
如果之前沒有設置過setImmediate函數
在當前poll階段等待
直到輪詢隊列添加回調函數,就去第一個情況執行
如果定時器到點了,也會去下一個階段
5.check 查階段
執行setImmediate設置的回調函數
6.close callbacks 關閉階段
執行close時間回調函數
關於 process.nextTick能在任意優先階段先執行