Node.js api 中文文档 - Timers


稳定度: 3 - 锁定

所有的定时器函数都是全局的。当需要使用它们时,不必通过require()

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

在指定的延时(毫秒)后执行一次回调函数。返回一个可以被调用clearTimeout()timeoutObject。可选的,你可以传递回调函数的参数。

需要注意的是,你的回调函数可以不会在精确的在指定的毫秒延时后执行 - node.js对回调函数执行的精确时间以及顺序都不作保证。回调函数的执行点会尽量接近指定的延时。

clearTimeout(timeoutObject)

阻止一个timeout的触发。

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

在每次到达了指定的延时后,都重复执行回调函数。返回一个可以被调用clearInterval()intervalObject。可选的,你可以传递回调函数的参数。

clearInterval(intervalObject)

阻止一个interval的触发。

unref()

setTimeoutsetInterval的返回值也有一个timer.unref()方法,这个方法允许你创建一个 当它是事件循环中的仅剩项时,它不会保持程序继续运行 的定时器。如果一个定时器已经被unref,再次调用unref不会有任何效果。

setTimeout的情况下,当你调用unref时,你创建了一个将会唤醒事件循环的另一个定时器。创建太多这样的定时器会影响时间循环的性能 -- 请明智地使用。

ref()

如果你先前对一个定时器调用了unref(),你可以调用ref()来明确要求定时器要保持程序运行。如果一个定时器已经被ref,再次调用ref不会有任何效果。

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

在下一次I/O事件循环后,在setTimeoutsetInterval前,“立刻”执行回调函数。返回一个可以被clearImmediate()immediateObject。可选的,你可以传递回调函数的参数。

setImmediate创建的回调函数会被有序地排队。每一次事件循环迭代时,整个回调函数队列都会被处理。如果你在一个执行中的回调函数里调用了setImmediate,那么这个setImmediate中的回调函数会在下一次事件循环迭代时被调用。

clearImmediate(immediateObject)

阻止一个immediate的触发。

更多Node.js教程

学习更多Node.js教程