clearInterval在nodejs中不起作用

时间:2018-06-18 18:37:40

标签: node.js

我在构造函数

中声明了一个变量refreshIntervalId
constructor() {
    super();
    this.init = false;
    a=this;
    this.refreshIntervalId;
}

我有一个onConsume方法,由另一个程序调用。它有一个setinterval,我需要在每次调用时清除它。

onConsume(requests) {
if (this.init) {
           console.log("clearing interval");
                   if(a.refreshIntervalId == null){
                      console.log("but refreshIntervalId  is null");
                   }else{
                      clearInterval(a.refreshIntervalId);
                    }
    }
     this.init = true;

            a.refreshIntervalId = setInterval(() => {
             ...}, 1000);
}

第一次执行setinterval并定期运行。第二次调用onConsume,打印“清除间隔”和“但刷新内存Id为空”,我可以看到正在执行2个设置间隔。

有人知道为什么refreshIntervalId为null。我尝试过使用this.refreshIntervalId或只是refreshIntervalId本身的不同组合,但没有任何效果。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

onConsume是一个方法在同一个对象上使用你粘贴在顶部的构造函数吗?如果是这样,您将其引用为a.refreshIntervalId而不是this.refreshIntervalId。如果没有,那么我会确保' a'正在引用具有间隔的对象的正确实例。另外,请记住

undefined == null; // returns true
undefined === null; // returns false