Node.js – Timeout-hasRef() 和 Timeout-refresh() 方法

node.jsserver side programmingprogramming

Timeout 对象在内部创建,并由 setTimeout()setInterval() 方法返回。您可以使用此对象并将其传递给 clearTimeout()clearInterval() 方法,以取消计划的操作。

以下是可用于控制默认行为的 timeout 类 ref 对象

1. timeout.hasRef()

只要此方法的值为 True,它就会保持节点事件循环处于活动状态。

语法

timeout.hasRef()

2. timeout.refresh()

此方法将计时器的开始时间刷新为当前时间,并将计时器重新安排到其回调中,其中先前指定的持续时间将调整为当前时间。此方法有助于在不创建新 JS 对象的情况下刷新计时器。

语法

timeout.refresh()

示例

创建一个名为"timeout.js"的文件,并复制以下代码片段。创建文件后,使用命令 "node timeout.js" 运行此代码。

// Timeout 类演示示例

// 使用 setTimeout() 方法设置超时
var Timeout = setTimeout(function fun() {
   console.log("1. 设置超时 100 毫秒", 100);
});

// 检查 timeout.hasRef() 对象是否为真
console.log("2. ", Timeout.hasRef());

// 刷新计时器
console.log("3. ", Timeout.refresh());

// 清除 setInterval 超时
clearTimeout(Timeout);

console.log("4. Timeout is cleared !");

输出

2. true
3. Timeout {
   _called: false,
   _idleTimeout: 1,
   _idlePrev: [TimersList],
   _idleNext: [TimersList],
   _idleStart: 382,
   _onTimeout: [Function: alfa],
   _timerArgs: undefined,
   _repeat: null,
   _destroyed: false,
   [Symbol(unrefed)]: false,
   [Symbol(asyncId)]: 5,
   [Symbol(triggerId)]: 1 }
4. Timeout is cleared !

相关文章