预定定时器
- setTimeout(callback, delay[, ...args])
- setInterval(callback, delay[, ...args])
- setImmediate(callback[, ...args])
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。