歡迎您光臨本站 註冊首頁

Node.js API詳解之 timer模塊用法實例分析

←手機掃碼閱讀     sl_ivan @ 2020-05-08 , reply:0

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); }, 1000, 'xiaoqiang'); clearInterval(timeout);
setTimeout(callback, delay[, …args])
說明:
預定在 delay 毫秒之後執行的單次 callback。
callback: 定時器到點時要調用的函數。
delay: 調用 callback 之前要等待的毫秒數。delay 大於 2147483647 或小於 1 時,delay 會被設為 1。
…args: 調用 callback 時要傳入的可選參數。
demo:
setTimeout((str) => { console.log(str); }, 1000, 'xiaoqiang'); //xiaoqiang
clearTimeout(timeout)
說明:
取消一個由 setTimeout() 創建的 Timeout 對象
timeout: setTimeout() 返回的 Timeout 對象
demo:
var timeout = setTimeout((str) => { console.log(str); }, 1000, '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); }, 5000, 'xiaoqiang'); timeout.unref(); timeout.ref() //xiaoqiang


[sl_ivan ] Node.js API詳解之 timer模塊用法實例分析已經有328次圍觀

http://coctec.com/docs/javascript/show-post-233294.html