预定定时器


Node.js 中的计时器是一种会在一段时间后调用给定的函数的内部构造。定时器函数会在何时被调用,取决于用来创建定时器的方法以及 Node.js 事件循环是否正在做其他工作。

setTimeout(callback, delay[, …args])

添加:v0.0.1

  • callback {Function} 当定时器到点时回调的函数。

  • delay {Number} 在调用 callback 之前等待的毫秒数。

  • ...args {Any} 在调用 callback 时要传递的可选参数。

delay 毫秒之后预定执行一次性的 callback。返回一个用于 clearTimeout()Timeout

callback 可能不会精确地在 delay 毫秒被调用。Node.js 不能保证回调被触发的确切时间,也不能保证它们的顺序。回调会在尽可能接近所指定的时间上调用。

注意:当 delay 大于 2147483647 或小于 1 时,delay 会被设置为 1

如果 callback 不是一个函数,将会抛出一个 TypeError

setInterval(callback, delay[, …args])

添加:v0.0.1

  • callback {Function} 当定时器到点时回调的函数。

  • delay {Number} 在调用 callback 之前等待的毫秒数。

  • ...args {Any} 在调用 callback 时要传递的可选参数。

预定每隔 delay 毫秒重复执行 callback。返回一个用于 clearInterval()Timeout

注意:当 delay 大于 2147483647 或小于 1 时,delay 会被设置为 1

如果 callback 不是一个函数,将会抛出一个 TypeError

setImmediate(callback[, …args])

添加:v0.9.1

  • callback {Function} 在当前的 Node.js 事件循环回合结束时调用该函数。

  • ...args {Any} 在调用 callback 时要传递的可选参数。

预定“立即”执行 callback,它是在 I/O 事件的回调之后并在使用 setTimeout()setInterval() 创建的计时器之前被触发。返回一个用于 clearImmediate()Immediate

当多次调用 setImmediate() 时,回调函数会按照它们的创建顺序依次执行。每个事件循环迭代都会处理整个回调队列。如果立即定时器正在执行回调中排队,那么该定时器直到下一个事件循环迭代之前将不会被触发。

如果 callback 不是一个函数,将会抛出一个 TypeError