IO.js Timers

2018-11-28 22:35 更新

穩(wěn)定度: 3 - 鎖定

所有的定時器函數(shù)都是全局的。當(dāng)需要使用它們時,不必通過require()。

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

在指定的延時(毫秒)后執(zhí)行一次回調(diào)函數(shù)。返回一個可以被調(diào)用clearTimeout()timeoutObject??蛇x的,你可以傳遞回調(diào)函數(shù)的參數(shù)。

需要注意的是,你的回調(diào)函數(shù)可以不會在精確的在指定的毫秒延時后執(zhí)行 - io.js對回調(diào)函數(shù)執(zhí)行的精確時間以及順序都不作保證。回調(diào)函數(shù)的執(zhí)行點(diǎn)會盡量接近指定的延時。

clearTimeout(timeoutObject)

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

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

在每次到達(dá)了指定的延時后,都重復(fù)執(zhí)行回調(diào)函數(shù)。返回一個可以被調(diào)用clearInterval()intervalObject??蛇x的,你可以傳遞回調(diào)函數(shù)的參數(shù)。

clearInterval(intervalObject)

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

unref()

setTimeoutsetInterval的返回值也有一個timer.unref()方法,這個方法允許你創(chuàng)建一個 當(dāng)它是事件循環(huán)中的僅剩項(xiàng)時,它不會保持程序繼續(xù)運(yùn)行 的定時器。如果一個定時器已經(jīng)被unref,再次調(diào)用unref不會有任何效果。

setTimeout的情況下,當(dāng)你調(diào)用unref時,你創(chuàng)建了一個將會喚醒事件循環(huán)的另一個定時器。創(chuàng)建太多這樣的定時器會影響時間循環(huán)的性能 -- 請明智地使用。

ref()

如果你先前對一個定時器調(diào)用了unref(),你可以調(diào)用ref()來明確要求定時器要保持程序運(yùn)行。如果一個定時器已經(jīng)被ref,再次調(diào)用ref不會有任何效果。

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

在下一次I/O事件循環(huán)后,在setTimeoutsetInterval前,“立刻”執(zhí)行回調(diào)函數(shù)。返回一個可以被clearImmediate()immediateObject??蛇x的,你可以傳遞回調(diào)函數(shù)的參數(shù)。

setImmediate創(chuàng)建的回調(diào)函數(shù)會被有序地排隊(duì)。每一次事件循環(huán)迭代時,整個回調(diào)函數(shù)隊(duì)列都會被處理。如果你在一個執(zhí)行中的回調(diào)函數(shù)里調(diào)用了setImmediate,那么這個setImmediate中的回調(diào)函數(shù)會在下一次事件循環(huán)迭代時被調(diào)用。

clearImmediate(immediateObject)

阻止一個immediate的觸發(fā)。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號