Node.js – hasRef() 和 refresh() 定时器方法


定时器对象通过内部创建,并由 setTimeout()setInterval() 方法返回。您可以使用此对象,并将其传递给 clearTimeout()clearInterval() 方法,以便取消已调度的操作

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

1. timeout.hasRef()

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

语法

timeout.hasRef()

2. timeout.refresh()

此方法将计时器的开始时间刷新为当前时间,并将计时器重新调度到回调函数中,此前指定的时间间隔将调整为当前时间。此方法有助于在没有新 JS 对象的情况下刷新计时器。

语法

timeout.refresh()

示例

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

// Timeout class Demo Example

// Setting the Timeout using setTimeout() Method
var Timeout = setTimeout(function fun() {
   console.log("1. Setting Timeout for 100ms", 100);
});

// Checking if the timeout.hasRef() object
console.log("2. ", Timeout.hasRef());

// Refreshing the timer
console.log("3. ", Timeout.refresh());

// Clears setInterval Timeout
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 !

更新于: 2021 年 10 月 29 日

1K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始
广告