穩(wěn)定性: 5 - 鎖定
所有的定時(shí)器函數(shù)都是全局的。不需要通過(guò) require()
就可以訪問(wèn)。
delay
毫秒之后執(zhí)行 callback
。返回 timeoutObject
對(duì)象,可能會(huì)用來(lái) clearTimeout()
。你也可以給回調(diào)函數(shù)傳參數(shù)。
需要注意,你的回調(diào)函數(shù)可能不會(huì)非常準(zhǔn)確的在 delay
毫秒后執(zhí)行,Node.js 不保證回調(diào)函數(shù)的精確時(shí)間和執(zhí)行順序。回調(diào)函數(shù)會(huì)盡量的靠近指定的時(shí)間。
阻止一個(gè) timeout 被觸發(fā)。
每隔 delay
毫秒就重復(fù)執(zhí)行 callback
。返回 timeoutObject
對(duì)象,可能會(huì)用來(lái) clearTimeout()
。你也可以給回調(diào)函數(shù)傳參數(shù)。
阻止一個(gè) interval 被觸發(fā)。
setTimeout
和 setInterval
所返回的值,擁有 timer.unref()
方法,它能讓你創(chuàng)建一個(gè)活動(dòng)的定時(shí)器,但是它所在的事件循環(huán)中如果僅剩它一個(gè)計(jì)時(shí)器,將不會(huì)保持程序運(yùn)行。如果計(jì)時(shí)器已經(jīng)調(diào)用了 unref
,再次調(diào)用將無(wú)效。
在 setTimeout
場(chǎng)景中,當(dāng)你使用 unref
并創(chuàng)建了一個(gè)獨(dú)立定時(shí)器它將會(huì)喚醒事件循環(huán)。創(chuàng)建太多的這樣的東西會(huì)影響事件循環(huán)性能,所以謹(jǐn)慎使用。
如果你之前已經(jīng)使用 unref()
一個(gè)定時(shí)器,就可以使用 ref()
來(lái)明確的請(qǐng)求定時(shí)器保持程序打開(kāi)狀態(tài)。如果計(jì)時(shí)器已經(jīng)調(diào)用了 ref()
,再次調(diào)用將無(wú)效。
在 setTimeout
和 setInterval
事件前,在輸入/輸出事件后,安排一個(gè) callback
"immediate" 立即執(zhí)行。
immediates 的回調(diào)以它們創(chuàng)建的順序加入隊(duì)列。整個(gè)回調(diào)隊(duì)列會(huì)在事件循環(huán)迭代中執(zhí)行。如果你將immediates 加入到一個(gè)正在執(zhí)行回調(diào)中,那么將不會(huì)觸發(fā)immediate,直到下次事件循環(huán)迭代。
停止一個(gè) immediate 的觸發(fā)。