node.js:如何使用 setInterval 和 clearInterval?

标签 node.js

这是我在 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/

相关文章:

android - 未找到 react native 命令

javascript - 使用 JSDoc 记录模块导出类

node.js - 抓取谷歌翻译

javascript - 带有 ExpressJS 路由器的 CRUD

javascript - 将 MySQL 行从 .exec(err,rows) 返回到 Sails JS 中的函数(我不想发送行作为响应)

css - 尝试将 .css 链接到 .ejs 文件时出现错误

javascript - 从 promise 中返回数据到中间件

node.js - Stripe 不允许将一笔费用与一次性来源的客户关联起来

javascript - 在 HTTP 触发器 azure 中等待 Newman 响应

node.js - 使用 nodeJS/forever 忽略配置文件