// 說明
本段為博主注解。
○ setTimeout(callback, delay, [arg], [...])
○ clearTimeout(timeoutObject)
○ setInterval(callback, delay, [arg], [...])
○ clearInterval(intervalObject)
○ unref()
○ ref()
○ setImmediate(callback, [arg], [...])
○ clearImmediate(immediateObject)
目錄
● 定時器○ setTimeout(callback, delay, [arg], [...])
○ clearTimeout(timeoutObject)
○ setInterval(callback, delay, [arg], [...])
○ clearInterval(intervalObject)
○ unref()
○ ref()
○ setImmediate(callback, [arg], [...])
○ clearImmediate(immediateObject)
穩定性:5 - 鎖定
所有的定時器函數都是全局的。你不需要為了使用它們而 require() 這個模塊。
setTimeout(callback, delay, [arg], [...])
計划在 delay 毫秒之后執行一個一次的 callback。返回一個 timeoutObject 以供 clearTimeout() 在有需要的時候使用。可選地,你也可以傳遞參數給回調函數。
重要值得注意的是,你的回調函數很可能不是在准確的 delay 毫秒之后被調用—— Node.js 不保證回調函數執行的准確時間和執行的順序。回調函數只是盡可能地靠近指定的時間去執行。
clearTimeout(timeoutObject)
阻止一個 timeout 定時器觸發。
setInterval(callback, delay, [arg], [...])
計划每隔 delay 毫秒之后重復執行 callback。返回一個 intervalObject 以供 clearInterval() 在有需要的時候使用。可選地,你也可以傳遞參數給回調函數。
clearInterval(intervalObject)
停止一個 interval 定時器的觸發。
unref()
setTimeout 和 setInterval 返回的不透明的值也有 timer.unref() 方法,能讓你創建一個活躍的定時器,但如果它是事件循環中僅剩的元素時,將不會令程序保持運行。如果定時器已經被 unref,再次調用 unref 不會有任何影響。
在 setTimeout 的情況下當你 unref,你將創建另一個會喚醒事件循環的定時器。創建太多這些定時器可能對事件循環的性能造成不利的影響——慎用。
ref()
如果你之前已經 unref() 一個定時器,你可以調用 ref() 明確地要求定時器保持程序運行。如果定時器已經被 ref,再次調用 ref 不會有任何影響。
setImmediate(callback, [arg], [...])
計划在 I/O 事件回調之后,setTimeout 和 setInterval 之前”馬上“執行 callback。返回一個 immediateObject 以供 clearImmediate() 在有需要的時候使用。可選地,你要可以傳遞參數給回調函數。
immediate 事件都以創建的順序被放入隊列中,並且在每次事件循環迭代中從隊列頭彈出一個。這與 process.nextTick 不同,后者會在每次迭代中執行 process.maxTickDepth 個隊列中的回調函數。setImmediate 執行一個隊列中的回調函數后會放棄(對CPU的占用)回到事件循環以保證 I/O 不至於無法發起。當執行的順序被保存之后,其他 I/O 事件可能會在任何兩個計划的 immediate 回調函數之間執行。
clearImmediate(immediateObject)
停止一個 immediate 定時器觸發。