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