Node.js v20.3.1 文档


类:Timeout#

此对象是在 setTimeout()setInterval() 内部创建并返回。 它可以传给 clearTimeout()clearInterval() 以取消调度的行动。

默认情况下,当使用 setTimeout()setInterval() 调度定时器时,只要定时器处于活动状态,则 Node.js 事件循环就会继续运行。 这些函数返回的每个 Timeout 对象都导出可用于控制此默认行为的 timeout.ref()timeout.unref() 函数。

timeout.close()#

稳定性: 3 - 旧版: 改用 clearTimeout()

取消超时。

timeout.hasRef()#

如果为 true,则 Timeout 对象将使 Node.js 事件循环保持活动状态。

timeout.ref()#

调用时,请求只要 Timeout 处于活动状态,Node.js 事件循环就不会退出。 多次调用 timeout.ref() 将不起作用。

默认情况下,所有 Timeout 对象都是 "ref'ed",因此通常无需调用 timeout.ref(),除非之前已调用 timeout.unref()

timeout.refresh()#

将定时器的开始时间设置为当前时间,并重新调度定时器在调整为当前时间的先前指定的时长调用其回调。 这对于在不分配新的 JavaScript 对象的情况下刷新定时器很有用。

在已经调用其回调的定时器上使用它会重新激活定时器。

timeout.unref()#

调用时,活动的 Timeout 对象不需要 Node.js 事件循环保持活动状态。 如果没有其他活动保持事件循环运行,则进程可能会在调用 Timeout 对象的回调之前退出。 多次调用 timeout.unref() 将不起作用。

timeout[Symbol.toPrimitive]()#

  • 返回: <integer> 可用于引用此 timeout 的数字

Timeout 强制为原始类型。 该原始类型可用于清除 Timeout。 该原始类型只能在创建超时的同一线程中使用。 因此,要在 worker_threads 上使用它,则必须首先将其传给正确的线程。 这允许增强与浏览器 setTimeout()setInterval() 实现的兼容性。