知识共享许可协议
本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可。

Node.js v4.2.4 手册 & 文档


定时器#

稳定度: 5 - 已锁定

所有的定时器函数都是全局变量. 你使用这些函数时不需要 require()模块.

setTimeout(callback, delay, [arg], [...])#

调度 delay 毫秒后的一次 callback 执行。返回一个可能被 clearTimeout() 用到的 timeoutId。可选地,您还能给回调传入参数。

请务必注意,您的回调有可能不会在准确的 delay 毫秒后被调用。Node.js 不保证回调被触发的精确时间和顺序。回调会在尽可能接近所指定时间上被调用。

clearTimeout(timeoutId)#

阻止一个 timeout 被触发。

setInterval(callback, delay, [arg], [...])#

调度每隔 delay 毫秒执行一次的 callback。返回一个可能被 clearInterval() 用到的 intervalId。可选地,您还能给回调传入参数。

clearInterval(intervalId)#

停止一个 interval 的触发。

unref()#

setTimeoutsetInterval 所返回的值同时具有 timer.unref() 方法,允许您创建一个活动的、但当它是事件循环中仅剩的项目时不会保持程序运行的定时器。如果定时器已被 unref,再次调用 unref 不会产生其它影响。

setTimeout 的情景中当您 unref 您会创建另一个定时器,并唤醒事件循环。创建太多这种定时器可能会影响事件循环的性能,慎用。

ref()#

如果您之前 unref() 了一个定时器,您可以调用 ref() 来明确要求定时器让程序保持运行。如果定时器已被 ref 那么再次调用 ref 不会产生其它影响。

setImmediate(callback, [arg], [...])#

调度在所有 I/O 事件回调之后、setTimeoutsetInterval 之前“立即”执行 callback。返回一个可能被 clearImmediate() 用到的 immediateId。可选地,您还能给回调传入参数。

immediate 的回调以它们创建的顺序被加入队列。整个回调队列会在每个事件循环迭代中被处理。如果您在一个正被执行的回调中添加 immediate,那么这个 immediate 在下一个事件循环迭代之前都不会被触发。

clearImmediate(immediateId)#

停止一个 immediate 的触发。