Node.js API詳解之 timer模塊用法實(shí)例分析
本文實(shí)例講述了Node.js API詳解之 timer模塊用法。分享給大家供大家參考,具體如下:
Node.js API詳解之 timer
timer 模塊暴露了一個全局的 API,用于在某個未來時間段調(diào)用調(diào)度函數(shù)。
因?yàn)槎〞r器函數(shù)是全局的,所以使用該 API 無需調(diào)用 require(‘timers')。
Node.js 中的計時器函數(shù)實(shí)現(xiàn)了與 Web 瀏覽器提供的定時器類似的 API,
它使用了一個不同的內(nèi)部實(shí)現(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ǎn)時要調(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ǎn)時要調(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),所以不需要單獨(dú)調(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)文章
安裝nvm并使用nvm安裝nodejs及配置環(huán)境變量的全過程
有時候使用nvm管理node會發(fā)現(xiàn)無法使用node或npm,主要原因是環(huán)境變量沒有配置成功,下面這篇文章主要給大家介紹了關(guān)于安裝nvm并使用nvm安裝nodejs及配置環(huán)境變量的相關(guān)資料,需要的朋友可以參考下2023-03-03node.js中的fs.truncateSync方法使用說明
這篇文章主要介紹了node.js中的fs.truncateSync方法使用說明,本文介紹了fs.truncateSync的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12優(yōu)化Node.js Web應(yīng)用運(yùn)行速度的10個技巧
這篇文章主要介紹了優(yōu)化Node.js Web應(yīng)用運(yùn)行速度的10個技巧,本文講解了從并行、異步、緩存、gzip 壓縮、客戶端渲染等等技巧,需要的朋友可以參考下2014-09-09詳解nodejs http請求相關(guān)總結(jié)
這篇文章主要介紹了nodejs http請求相關(guān)總結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03nodejs 實(shí)現(xiàn)釘釘ISV接入的加密解密方法
這篇文章主要介紹了nodejs 實(shí)現(xiàn)釘釘ISV接入的加密解密方法,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧,需要的朋友可以參考下2017-01-01三分鐘教會你用nodejs操作mysql數(shù)據(jù)庫
MySQL數(shù)據(jù)庫作為最流行的開源數(shù)據(jù)庫,基本上是每個web開發(fā)者必須要掌握的數(shù)據(jù)庫程序之一了,基本使用?node.js上,最受歡迎的mysql包就是mysql模塊,下面這篇文章主要給大家介紹了關(guān)于如何通過三分鐘教會你用nodejs操作mysql數(shù)據(jù)庫,需要的朋友可以參考下2023-05-05node跨域轉(zhuǎn)發(fā) express+http-proxy-middleware的使用
這篇文章主要介紹了node跨域轉(zhuǎn)發(fā) express+http-proxy-middleware的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05