Nodejs极简入门教程(二):定时器_node.js
程序员文章站
2022-03-05 23:26:55
...
setTimeout 和 clearTimeout
var obj = setTimeout(cb, ms);
var obj = setInterval(cb, ms);
var obj = setImmediate(cb);
process.nextTick(cb);
复制代码 代码如下:
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 在每次循环中仅仅执行一个回调函数。
上一篇: 我也是有原则的