Node.js API詳解之 timer模組用法例項分析
本文例項講述了Node.js API詳解之 timer模組用法。分享給大家供大家參考,具體如下:
Node.js API詳解之 timer
timer 模組暴露了一個全域性的 API,用於在某個未來時間段呼叫排程函式。
因為定時器函式是全域性的,所以使用該 API 無需呼叫 require(‘timers')。
Node.js 中的計時器函式實現了與 Web 瀏覽器提供的定時器類似的 API,
它使用了一個不同的內部實現,它是基於 Node.js 事件迴圈構建的。
setImmediate(callback[,…args])
說明:
預定立即執行的 callback,不需要傳遞等待時間,在當前執行棧執行完畢後會立即執行setImmediate繫結的回撥函式。
callback: 當前回合結束時要呼叫的函式
…args: 當呼叫 callback 時要傳入的可選引數
demo:
setImmediate(() => { console.log('Immediate'); });
clearImmediate(immediate)
說明:
取消一個由 setImmediate() 建立的 Immediate 物件。
immediate: setImmediate() 返回的 Immediate 物件。
demo:
var immediate = setImmediate(() => { console.log('Immediate'); }); clearImmediate(immediate)
setInterval(callback,delay[,…args])
說明:
預定每隔 delay 毫秒重複執行的 callback。
callback: 定時器到點時要呼叫的函式。
delay: 呼叫 callback 之前要等待的毫秒數。delay 大於 2147483647 或小於 1 時,delay 會被設為 1。
…args: 呼叫 callback 時要傳入的可選引數。
demo:
setInterval((str) => { console.log(str); },1000,'xiaoqiang'); // xiaoqiang // xiaoqiang // xiaoqiang // xiaoqiang // xiaoqiang
clearInterval(timeout)
說明:
取消一個由 setInterval() 建立的 Timeout 物件
timeout: setInterval() 返回的 Timeout 物件
demo:
var timeout = setInterval((str) => { console.log(str); },'xiaoqiang'); clearInterval(timeout);
setTimeout(callback,…args])
說明:
預定在 delay 毫秒之後執行的單次 callback。
callback: 定時器到點時要呼叫的函式。
delay: 呼叫 callback 之前要等待的毫秒數。delay 大於 2147483647 或小於 1 時,delay 會被設為 1。
…args: 呼叫 callback 時要傳入的可選引數。
demo:
setTimeout((str) => { console.log(str); },'xiaoqiang'); //xiaoqiang
clearTimeout(timeout)
說明:
取消一個由 setTimeout() 建立的 Timeout 物件
timeout: setTimeout() 返回的 Timeout 物件
demo:
var timeout = setTimeout((str) => { console.log(str); },'xiaoqiang'); clearTimeout(timeout);
timeout.unref()
說明:
當呼叫此方法時,說明定時器不要求事件迴圈保持活動狀態,在callback執行之前如果沒有其他任務保持事件迴圈活躍,
則Node程序退出,callback不會執行。
setTimeout(),setInterval()方法返回的Timeout物件都具有此方法。
demo:
var timeout = setTimeout((str) => { console.log(str); },5000,'xiaoqiang'); timeout.unref(); //程序立馬退出,不會執行callback
timeout.ref()
說明:
當呼叫此方法時,說明定時器要求事件迴圈保持活動狀態。所有定時器預設都會保持事件迴圈的活動狀態,所以不需要單獨呼叫此方法。
除非之前使用timeout.unref()更改了預設值。
demo:
var timeout = setTimeout((str) => { console.log(str); },'xiaoqiang'); timeout.unref(); timeout.ref() //xiaoqiang
希望本文所述對大家node.js程式設計有所幫助。