了解 setImmediate()

Node.js 的 setImmediate() 函數以特殊的方式與事件循環進行交互。 當你想要異步地執行某段代碼,並且盡快地執行時,可以使用 Node.js 提供的 setImmediate() 函數: setImmediate(() => { // 執行某些操作 }) 傳遞給 setImmediate() 的任何函數都是在事件循環的下一次迭代中執行的回調函數。 setImmediate() 與使用 0ms 延遲的 setTimeout(() => {}, 0) 和 process.nextTick() 有何不同? 傳遞給 process.nextTick() 的函數將在當前的事件循環迭代中執行,在當前操作結束後執行。這意味著它總是在 setTimeout 和 setImmediate 之前執行。 具有 0ms 延遲的 setTimeout() 回調函數與 setImmediate() 非常相似。執行順序將取決於各種因素,但它們都會在事件循環的下一次迭代中運行。

探索JavaScript定時器

在編寫JavaScript代碼時,您可能需要延遲函數的執行。了解如何使用setTimeout和setInterval在未來安排函數的執行。 setTimeout() 零延遲 setInterval() 遞迴setTimeout setTimeout() 在編寫JavaScript代碼時,您可能需要延遲函數的執行。 這就是setTimeout的工作。您指定一個將要延遲執行的回調函數,以及以毫秒表示的延遲時間: setTimeout(() => { // 2秒後執行 }, 2000) setTimeout(() => { // 50毫秒後執行 }, 50) 這個語法定義了一個新函數。您可以在其中調用任何其他函數,或者可以傳遞一個現有的函數名稱和一組參數: const myFunction = (firstParam, secondParam) => { // 做些事情 } // 2秒後執行 setTimeout(myFunction, 2000, firstParam, secondParam) setTimeout返回計時器id。這通常不會使用,但您可以存儲這個id,如果要刪除該計劃的函數執行,則可以清除它: const id = setTimeout(() => { // 應該在2秒後執行 }, 2000) // 我改變了主意 clearTimeout(id) 零延遲 如果將延遲時間設置為0,則回調函數將盡快執行,但在當前函數執行之後執行: setTimeout(() => { console.log('after ') }, 0) console.log(' before ') 將打印before after。 這對於避免在密集任務上阻塞CPU並在執行繁重計算時讓其他函數執行非常有用,通過在調度程序中對函數進行排隊。 某些瀏覽器(IE和Edge)實現了一個setImmediate()方法,具有完全相同的功能,但它不是標準的,並且在其他瀏覽器上不可用。但它是Node.js中的標準函數。 setInterval() setInterval是一個與setTimeout類似的函數,但有一個區別:它不僅運行一次回調函數,而是以您指定的特定時間間隔(以毫秒為單位)無限次運行:...