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 在每次循環中僅僅執行一個回調函數。
新聞熱點
疑難解答