这是我在nodeJS中的JS:
function test(a, room, seconds) {
console.log(a, room, seconds);
}
intervalid = setInterval(test, 1000, 'room', 20);
console.log('intervalid', intervalid);
Run Code Online (Sandbox Code Playgroud)
这返回了我的输出:
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
}
Run Code Online (Sandbox Code Playgroud)
而在简单的Javascript中它返回一个简单的INTEGER数字
当我将间隔附加到现有用户对象时,例如:
user.intervalid = setInterval(test, 1000, 'room', 20);
Run Code Online (Sandbox Code Playgroud)
我不能再清除InterInterval了:
clearInterval(user.intervalid); // does not work
Run Code Online (Sandbox Code Playgroud)
Sye*_*ebe 22
使用setInterval()
如果需要以指定的时间间隔重复执行代码块,该怎么办?为此,Node具有名为setInterval()和clearInterval()的方法.setInterval()函数非常类似于setTimeout(),使用相同的参数,例如回调函数,延迟和传递给回调函数的任何可选参数.
下面是一个简单的setInterval()示例:
var interval = setInterval(function(str1, str2) {
console.log(str1 + " " + str2);
}, 1000, "Hello.", "How are you?");
clearInterval(interval);
Run Code Online (Sandbox Code Playgroud)
当您希望每分钟只保留一个间隔时,这是另一种方法
function intervalFunc() {
console.log("Hello!!!!");
}
setInterval(intervalFunc,1500);
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,intervalFunc()将大约每1500毫秒或1.5秒执行一次,直到它停止.希望这可以帮助.
vic*_*ke4 11
如果您在创建setInterval计时器后想要一个类似于 JavaScript 的间隔 ID,您可以执行以下操作,
function callbackFunc() {
console.log("I'm just an example callback function");
}
const timeoutObj = setInterval(callbackFunc, 1000);
const intervalId = timeoutObj[Symbol.toPrimitive](); //intervalId is an interger
// Later you can clear the timer by calling clearInterval with the intervalId like,
clearInterval(intervalId);
Run Code Online (Sandbox Code Playgroud)
注意:这仅在您的节点版本 >= 时有效v12.19.0。
小智 5
您可以在以下示例中使用“this”:
const dgram = require('dgram');
const message = Buffer.from('from raspberry pi 3');
const client = dgram.createSocket('udp4');
var count = 0;
function intervalFunc() {
count++;
client.send(message, 3001, 'localhost', (err) => {
//client.close();
});
if (count == '5') {
clearInterval(this);
}
}
setInterval(intervalFunc, 1500);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38318 次 |
| 最近记录: |