您好,登錄后才能下訂單哦!
小編這次要給大家分享的是Node.js API中如何使用timer模塊,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
timer 模塊暴露了一個全局的 API,用于在某個未來時間段調用調度函數。
因為定時器函數是全局的,所以使用該 API 無需調用 require(‘timers')。
Node.js 中的計時器函數實現了與 Web 瀏覽器提供的定時器類似的 API,
它使用了一個不同的內部實現,它是基于 Node.js 事件循環構建的。
說明:
預定立即執行的 callback,不需要傳遞等待時間,在當前執行棧執行完畢后會立即執行setImmediate綁定的回調函數。
callback: 當前回合結束時要調用的函數
…args: 當調用 callback 時要傳入的可選參數
demo:
setImmediate(() => { console.log('Immediate'); });
說明:
取消一個由 setImmediate() 創建的 Immediate 對象。
immediate: setImmediate() 返回的 Immediate 對象。
demo:
var immediate = setImmediate(() => { console.log('Immediate'); }); clearImmediate(immediate)
說明:
預定每隔 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
說明:
取消一個由 setInterval() 創建的 Timeout 對象
timeout: setInterval() 返回的 Timeout 對象
demo:
var timeout = setInterval((str) => { console.log(str); }, 1000, 'xiaoqiang'); clearInterval(timeout);
說明:
預定在 delay 毫秒之后執行的單次 callback。
callback: 定時器到點時要調用的函數。
delay: 調用 callback 之前要等待的毫秒數。delay 大于 2147483647 或小于 1 時,delay 會被設為 1。
…args: 調用 callback 時要傳入的可選參數。
demo:
setTimeout((str) => { console.log(str); }, 1000, 'xiaoqiang'); //xiaoqiang
說明:
取消一個由 setTimeout() 創建的 Timeout 對象
timeout: setTimeout() 返回的 Timeout 對象
demo:
var timeout = setTimeout((str) => { console.log(str); }, 1000, 'xiaoqiang'); clearTimeout(timeout);
說明:
當調用此方法時,說明定時器不要求事件循環保持活動狀態,在callback執行之前如果沒有其他任務保持事件循環活躍,
則Node進程退出,callback不會執行。
setTimeout(),setInterval()方法返回的Timeout對象都具有此方法。
demo:
var timeout = setTimeout((str) => { console.log(str); }, 5000, 'xiaoqiang'); timeout.unref(); //進程立馬退出,不會執行callback
說明:
當調用此方法時,說明定時器要求事件循環保持活動狀態。所有定時器默認都會保持事件循環的活動狀態,所以不需要單獨調用此方法。
除非之前使用timeout.unref()更改了默認值。
demo:
var timeout = setTimeout((str) => { console.log(str); }, 5000, 'xiaoqiang'); timeout.unref(); timeout.ref() //xiaoqiang
看完這篇關于Node.js API中如何使用timer模塊的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。