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 在每次循环中仅仅执行一个回调函数。
新闻热点
疑难解答