setTimeout
的使用與瀏覽器中的setTimeout
類似,不過就實現方式而言,卻會占用一定的性能:
- 由于是事件監聽機制,某個流程占用時間過長就會導致時間的精確度變低。
- 采用紅黑樹的機制,整體的時間復雜度是
o(lgn)
nextTick
則不同:
- 執行到
nextTick
時,會將其加到當前隊列的隊尾 - 實現機制不是紅黑樹機制,事件復雜度
O(1)
idle觀察者、I/O觀察者、Check觀察者
nextTick
屬于Idle觀察者
setTimeout
屬于Check觀察者
優先級:
idle觀察者 > I/O觀察者 > Check觀察者