Node.js API詳解之 timer模塊用法實(shí)例分析
本文實(shí)例講述了Node.js API詳解之 timer模塊用法。分享給大家供大家參考,具體如下:
Node.js API詳解之 timer
timer 模塊暴露了一個(gè)全局的 API,用于在某個(gè)未來(lái)時(shí)間段調(diào)用調(diào)度函數(shù)。
因?yàn)槎〞r(shí)器函數(shù)是全局的,所以使用該 API 無(wú)需調(diào)用 require(‘timers')。
Node.js 中的計(jì)時(shí)器函數(shù)實(shí)現(xiàn)了與 Web 瀏覽器提供的定時(shí)器類似的 API,
它使用了一個(gè)不同的內(nèi)部實(shí)現(xiàn),它是基于 Node.js 事件循環(huán)構(gòu)建的。
setImmediate(callback[, …args])
說(shuō)明:
預(yù)定立即執(zhí)行的 callback,不需要傳遞等待時(shí)間,在當(dāng)前執(zhí)行棧執(zhí)行完畢后會(huì)立即執(zhí)行setImmediate綁定的回調(diào)函數(shù)。
callback: 當(dāng)前回合結(jié)束時(shí)要調(diào)用的函數(shù)
…args: 當(dāng)調(diào)用 callback 時(shí)要傳入的可選參數(shù)
demo:
setImmediate(() => {
console.log('Immediate');
});
clearImmediate(immediate)
說(shuō)明:
取消一個(gè)由 setImmediate() 創(chuàng)建的 Immediate 對(duì)象。
immediate: setImmediate() 返回的 Immediate 對(duì)象。
demo:
var immediate = setImmediate(() => {
console.log('Immediate');
});
clearImmediate(immediate)
setInterval(callback, delay[, …args])
說(shuō)明:
預(yù)定每隔 delay 毫秒重復(fù)執(zhí)行的 callback。
callback: 定時(shí)器到點(diǎn)時(shí)要調(diào)用的函數(shù)。
delay: 調(diào)用 callback 之前要等待的毫秒數(shù)。delay 大于 2147483647 或小于 1 時(shí),delay 會(huì)被設(shè)為 1。
…args: 調(diào)用 callback 時(shí)要傳入的可選參數(shù)。
demo:
setInterval((str) => {
console.log(str);
}, 1000, 'xiaoqiang');
// xiaoqiang
// xiaoqiang
// xiaoqiang
// xiaoqiang
// xiaoqiang
clearInterval(timeout)
說(shuō)明:
取消一個(gè)由 setInterval() 創(chuàng)建的 Timeout 對(duì)象
timeout: setInterval() 返回的 Timeout 對(duì)象
demo:
var timeout = setInterval((str) => {
console.log(str);
}, 1000, 'xiaoqiang');
clearInterval(timeout);
setTimeout(callback, delay[, …args])
說(shuō)明:
預(yù)定在 delay 毫秒之后執(zhí)行的單次 callback。
callback: 定時(shí)器到點(diǎn)時(shí)要調(diào)用的函數(shù)。
delay: 調(diào)用 callback 之前要等待的毫秒數(shù)。delay 大于 2147483647 或小于 1 時(shí),delay 會(huì)被設(shè)為 1。
…args: 調(diào)用 callback 時(shí)要傳入的可選參數(shù)。
demo:
setTimeout((str) => {
console.log(str);
}, 1000, 'xiaoqiang');
//xiaoqiang
clearTimeout(timeout)
說(shuō)明:
取消一個(gè)由 setTimeout() 創(chuàng)建的 Timeout 對(duì)象
timeout: setTimeout() 返回的 Timeout 對(duì)象
demo:
var timeout = setTimeout((str) => {
console.log(str);
}, 1000, 'xiaoqiang');
clearTimeout(timeout);
timeout.unref()
說(shuō)明:
當(dāng)調(diào)用此方法時(shí),說(shuō)明定時(shí)器不要求事件循環(huán)保持活動(dòng)狀態(tài),在callback執(zhí)行之前如果沒有其他任務(wù)保持事件循環(huán)活躍,
則Node進(jìn)程退出,callback不會(huì)執(zhí)行。
setTimeout(),setInterval()方法返回的Timeout對(duì)象都具有此方法。
demo:
var timeout = setTimeout((str) => {
console.log(str);
}, 5000, 'xiaoqiang');
timeout.unref();
//進(jìn)程立馬退出,不會(huì)執(zhí)行callback
timeout.ref()
說(shuō)明:
當(dāng)調(diào)用此方法時(shí),說(shuō)明定時(shí)器要求事件循環(huán)保持活動(dòng)狀態(tài)。所有定時(shí)器默認(rèn)都會(huì)保持事件循環(huán)的活動(dòng)狀態(tài),所以不需要單獨(dú)調(diào)用此方法。
除非之前使用timeout.unref()更改了默認(rèn)值。
demo:
var timeout = setTimeout((str) => {
console.log(str);
}, 5000, 'xiaoqiang');
timeout.unref();
timeout.ref()
//xiaoqiang
希望本文所述對(duì)大家node.js程序設(shè)計(jì)有所幫助。
相關(guān)文章
安裝nvm并使用nvm安裝nodejs及配置環(huán)境變量的全過(guò)程
有時(shí)候使用nvm管理node會(huì)發(fā)現(xiàn)無(wú)法使用node或npm,主要原因是環(huán)境變量沒有配置成功,下面這篇文章主要給大家介紹了關(guān)于安裝nvm并使用nvm安裝nodejs及配置環(huán)境變量的相關(guān)資料,需要的朋友可以參考下2023-03-03
node.js中的fs.truncateSync方法使用說(shuō)明
這篇文章主要介紹了node.js中的fs.truncateSync方法使用說(shuō)明,本文介紹了fs.truncateSync的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
優(yōu)化Node.js Web應(yīng)用運(yùn)行速度的10個(gè)技巧
這篇文章主要介紹了優(yōu)化Node.js Web應(yīng)用運(yùn)行速度的10個(gè)技巧,本文講解了從并行、異步、緩存、gzip 壓縮、客戶端渲染等等技巧,需要的朋友可以參考下2014-09-09
詳解nodejs http請(qǐng)求相關(guān)總結(jié)
這篇文章主要介紹了nodejs http請(qǐng)求相關(guān)總結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03
nodejs 實(shí)現(xiàn)釘釘ISV接入的加密解密方法
這篇文章主要介紹了nodejs 實(shí)現(xiàn)釘釘ISV接入的加密解密方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧,需要的朋友可以參考下2017-01-01
三分鐘教會(huì)你用nodejs操作mysql數(shù)據(jù)庫(kù)
MySQL數(shù)據(jù)庫(kù)作為最流行的開源數(shù)據(jù)庫(kù),基本上是每個(gè)web開發(fā)者必須要掌握的數(shù)據(jù)庫(kù)程序之一了,基本使用?node.js上,最受歡迎的mysql包就是mysql模塊,下面這篇文章主要給大家介紹了關(guān)于如何通過(guò)三分鐘教會(huì)你用nodejs操作mysql數(shù)據(jù)庫(kù),需要的朋友可以參考下2023-05-05
node跨域轉(zhuǎn)發(fā) express+http-proxy-middleware的使用
這篇文章主要介紹了node跨域轉(zhuǎn)發(fā) express+http-proxy-middleware的使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05

