Node.js API詳解之 timer模塊用法實例分析
本文實例講述了Node.js API詳解之 timer模塊用法。分享給大家供大家參考,具體如下:
Node.js API詳解之 timer
timer 模塊暴露了一個全局的 API,用于在某個未來時間段調(diào)用調(diào)度函數(shù)。
因為定時器函數(shù)是全局的,所以使用該 API 無需調(diào)用 require(‘timers')。
Node.js 中的計時器函數(shù)實現(xiàn)了與 Web 瀏覽器提供的定時器類似的 API,
它使用了一個不同的內(nèi)部實現(xiàn),它是基于 Node.js 事件循環(huán)構(gòu)建的。
setImmediate(callback[, …args])
說明:
預(yù)定立即執(zhí)行的 callback,不需要傳遞等待時間,在當(dāng)前執(zhí)行棧執(zhí)行完畢后會立即執(zhí)行setImmediate綁定的回調(diào)函數(shù)。
callback: 當(dāng)前回合結(jié)束時要調(diào)用的函數(shù)
…args: 當(dāng)調(diào)用 callback 時要傳入的可選參數(shù)
demo:
setImmediate(() => {
console.log('Immediate');
});
clearImmediate(immediate)
說明:
取消一個由 setImmediate() 創(chuàng)建的 Immediate 對象。
immediate: setImmediate() 返回的 Immediate 對象。
demo:
var immediate = setImmediate(() => {
console.log('Immediate');
});
clearImmediate(immediate)
setInterval(callback, delay[, …args])
說明:
預(yù)定每隔 delay 毫秒重復(fù)執(zhí)行的 callback。
callback: 定時器到點時要調(diào)用的函數(shù)。
delay: 調(diào)用 callback 之前要等待的毫秒數(shù)。delay 大于 2147483647 或小于 1 時,delay 會被設(shè)為 1。
…args: 調(diào)用 callback 時要傳入的可選參數(shù)。
demo:
setInterval((str) => {
console.log(str);
}, 1000, 'xiaoqiang');
// xiaoqiang
// xiaoqiang
// xiaoqiang
// xiaoqiang
// xiaoqiang
clearInterval(timeout)
說明:
取消一個由 setInterval() 創(chuàng)建的 Timeout 對象
timeout: setInterval() 返回的 Timeout 對象
demo:
var timeout = setInterval((str) => {
console.log(str);
}, 1000, 'xiaoqiang');
clearInterval(timeout);
setTimeout(callback, delay[, …args])
說明:
預(yù)定在 delay 毫秒之后執(zhí)行的單次 callback。
callback: 定時器到點時要調(diào)用的函數(shù)。
delay: 調(diào)用 callback 之前要等待的毫秒數(shù)。delay 大于 2147483647 或小于 1 時,delay 會被設(shè)為 1。
…args: 調(diào)用 callback 時要傳入的可選參數(shù)。
demo:
setTimeout((str) => {
console.log(str);
}, 1000, 'xiaoqiang');
//xiaoqiang
clearTimeout(timeout)
說明:
取消一個由 setTimeout() 創(chuàng)建的 Timeout 對象
timeout: setTimeout() 返回的 Timeout 對象
demo:
var timeout = setTimeout((str) => {
console.log(str);
}, 1000, 'xiaoqiang');
clearTimeout(timeout);
timeout.unref()
說明:
當(dāng)調(diào)用此方法時,說明定時器不要求事件循環(huán)保持活動狀態(tài),在callback執(zhí)行之前如果沒有其他任務(wù)保持事件循環(huán)活躍,
則Node進(jìn)程退出,callback不會執(zhí)行。
setTimeout(),setInterval()方法返回的Timeout對象都具有此方法。
demo:
var timeout = setTimeout((str) => {
console.log(str);
}, 5000, 'xiaoqiang');
timeout.unref();
//進(jìn)程立馬退出,不會執(zhí)行callback
timeout.ref()
說明:
當(dāng)調(diào)用此方法時,說明定時器要求事件循環(huán)保持活動狀態(tài)。所有定時器默認(rèn)都會保持事件循環(huán)的活動狀態(tài),所以不需要單獨調(diào)用此方法。
除非之前使用timeout.unref()更改了默認(rèn)值。
demo:
var timeout = setTimeout((str) => {
console.log(str);
}, 5000, 'xiaoqiang');
timeout.unref();
timeout.ref()
//xiaoqiang
希望本文所述對大家node.js程序設(shè)計有所幫助。
相關(guān)文章
NodeJS 實現(xiàn)手機(jī)短信驗證模塊阿里大于功能
這篇文章主要介紹了NodeJS 實現(xiàn)手機(jī)短信驗證模塊阿里大于功能,需要的朋友可以參考下2017-06-06
node將Excel數(shù)據(jù)轉(zhuǎn)為JSON的示例代碼
平時工作中我們基本都會接觸到excel數(shù)據(jù)表,但是在代碼中使用和處理數(shù)據(jù)的時候通常都要先將其轉(zhuǎn)為json格式數(shù)據(jù),json格式的數(shù)據(jù)可以更加方便我們進(jìn)行處理,那么我們要怎么將Excel數(shù)據(jù)轉(zhuǎn)為JSON數(shù)據(jù)呢,接下來本文給大家詳細(xì)介紹一下2024-11-11
詳解使用vscode+es6寫nodejs服務(wù)端調(diào)試配置
本篇文章主要介紹了使用vscode+es6寫nodejs服務(wù)端調(diào)試配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09
輕松創(chuàng)建nodejs服務(wù)器(9):實現(xiàn)非阻塞操作
這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(9):實現(xiàn)非阻塞操作,本系列文章會教你一步一步創(chuàng)建一個完整的服務(wù)器,要的朋友可以參考下2014-12-12
關(guān)于訪問node?express中的static靜態(tài)文件方法
這篇文章主要介紹了關(guān)于訪問node?express中的static靜態(tài)文件方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09

