Node.js 定時器

2022-02-26 10:31 更新
穩(wěn)定性: 5 - 鎖定

Node.js定時器模塊提供了全局API,用于在以后的某個時間段調(diào)用函數(shù)。

所有的定時器函數(shù)都是全局的。不需要通過require()就可以訪問。

setTimeout(callback, delay[, arg][, ...])

delay毫秒之后執(zhí)行callback。返回timeoutObject對象,可能會用來clearTimeout()。你也可以給回調(diào)函數(shù)傳參數(shù)。

需要注意,你的回調(diào)函數(shù)可能不會非常準確的在delay毫秒后執(zhí)行,Node.js不保證回調(diào)函數(shù)的精確時間和執(zhí)行順序。回調(diào)函數(shù)會盡量的靠近指定的時間。

clearTimeout(timeoutObject)

阻止一個timeout被觸發(fā)。

setInterval(callback, delay[, arg][, ...])

每隔delay毫秒就重復執(zhí)行callback。返回timeoutObject對象,可能會用來clearTimeout()。你也可以給回調(diào)函數(shù)傳參數(shù)。

clearInterval(intervalObject)

阻止一個interval被觸發(fā)。

unref()

setTimeoutsetInterval所返回的值,擁有timer.unref()方法,它能讓你創(chuàng)建一個活動的定時器,但是它所在的事件循環(huán)中如果僅剩它一個定時器,將不會保持程序運行。如果定時器已經(jīng)調(diào)用了unref,再次調(diào)用將無效。

setTimeout場景中,當你使用unref并創(chuàng)建了一個獨立定時器它將會喚醒事件循環(huán)。創(chuàng)建太多的這樣的東西會影響事件循環(huán)性能,所以謹慎使用。

ref()

如果你之前已經(jīng)使用unref()一個定時器,就可以使用ref()來明確的請求定時器保持程序打開狀態(tài)。如果計時器已經(jīng)調(diào)用了ref(),再次調(diào)用將無效。

setImmediate(callback[, arg][, ...])

setTimeoutsetInterval事件前,在輸入/輸出事件后,安排一個callback"immediate"立即執(zhí)行。

immediates的回調(diào)以它們創(chuàng)建的順序加入隊列。整個回調(diào)隊列會在事件循環(huán)迭代中執(zhí)行。如果你將immediates加入到一個正在執(zhí)行回調(diào)中,那么將不會觸發(fā)immediate,直到下次事件循環(huán)迭代。

clearImmediate(immediateObject)

用于停止一個immediate的觸發(fā)。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號