1. 程式人生 > 程式設計 >Node.js API詳解之 timer模組用法例項分析

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程式設計有所幫助。