这是我在 nodeJS 中的 JS:
function test(a, room, seconds) {
console.log(a, room, seconds);
}
intervalid = setInterval(test, 1000, 'room', 20);
console.log('intervalid', intervalid);
返回输出:
intervalid Timeout {
_called: false,
_idleTimeout: 1000,
_idlePrev: TimersList {
_idleNext: [Circular],
_idlePrev: [Circular],
_timer: Timer { '0': [Function: listOnTimeout], _list: [Circular] },
_unrefed: false,
msecs: 1000,
nextTick: false
},
_idleNext: TimersList {
_idleNext: [Circular],
_idlePrev: [Circular],
_timer: Timer { '0': [Function: listOnTimeout], _list: [Circular] },
_unrefed: false,
msecs: 1000,
nextTick: false
},
_idleStart: 377,
_onTimeout: [Function: test],
_timerArgs: [ 'room', 20 ],
_repeat: 1000
}
而在简单的 Javascript 中它返回一个简单的 INTEGER 数字
当我将间隔附加到现有用户对象时,例如:
user.intervalid = setInterval(test, 1000, 'room', 20);
我无法再清除Interval:
clearInterval(user.intervalid); // does not work
最佳答案
使用 setInterval()
如果您需要以指定的时间间隔重复执行代码块怎么办?为此,Node 具有称为 setInterval() 和 clearInterval() 的方法。 setInterval() 函数与 setTimeout() 非常相似,使用相同的参数,例如回调函数、延迟以及传递给回调函数的任何可选参数。
下面是一个简单的 setInterval() 示例:
var interval = setInterval(function(str1, str2) {
console.log(str1 + " " + str2);
}, 1000, "Hello.", "How are you?");
clearInterval(interval);
当您希望每分钟只运行一个间隔时,这是另一种方式
function intervalFunc() {
console.log("Hello!!!!");
}
setInterval(intervalFunc,1500);
在上面的示例中,intervalFunc() 将大约每 1500 毫秒或 1.5 秒执行一次,直到它停止。希望这会有所帮助。
关于node.js:如何使用 setInterval 和 clearInterval?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46588994/