Nodejs极简入门教程(二):定时器

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 在每次循环中仅仅执行一个回调函数。