setTimeout 和 clearTimeout
setTimeout 用來設定一個回呼函數 cb,其在最少 ms 毫秒後被執行(並非在 ms 毫秒後馬上執行)。 setTimeout 傳回值可以作為 clearTimeout 的參數,clearTimeout 用來停止定時器,這樣回呼函數就不會被執行了。
setInterval 和 clearInterval
setInterval 和 setTimeout 類似,不過 setInterval 會在每 ms 毫秒後(並非精確的 ms 毫秒後)執行一次 cb。 setInterval 傳回值可以作為 clearInterval 的參數,clearInterval 用來停止定時器,這樣回呼函數就不會被執行了。
setImmediate 和 clearImmediate
setImmediate 用於延遲呼叫 cb 函數。 cb 會在 I/O 事件回呼之後,setTimeout 和 setInterval 回呼之前被呼叫。 setImmediate 的傳回值可以作為 clearImmediate 的參數,clearImmediate 用來停止觸發回呼函數。
process.nextTick
類似 setImmediate 函數,用於延遲呼叫 cb 函數。 cb 將在 I/O 事件回調之前呼叫(區別於 setImmediate)。 process.nextTick 相比 setTimeout(cb, 0) 要有效率的多。 process.nextTick 在每次循環時會執行最多 process.maxTickDepth 個回呼函數,而 setImmediate 在每次循環中僅執行一個回調函數。