概述
當你想在node中執行異步代碼,並且想盡可能快的執行,那麼可以選擇node中的setImmediate()函數。
setImmediate(() => {
//run something
})
任何傳給setImmediate()的函數參數,都是在事件循環(event loop)的下一個迭代被調用執行。
setImmediate()、setTimeout(() => {}, 0)、process.nextTick()區別
setTimeout()以0ms的延時執行函數參數,和setImmediate()類似,但是這兩個誰先執行,取決於多種因素,但是這兩個都是在事件循環的下一個迭代被調用執行。
傳給process.nextTick()的函數參數,是在事件循環的本次迭代最末尾執行,當前迭代的其他操作結束立刻執行該函數參數。這意味着process.nextTick()執行總是早於setImmediate()和setTimeout().
原文參考這裏
看到一篇很詳細文章,建議參考:細說setTimeout/setImmediate/process.nextTick的區別