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