Node.js clearInterval在nodejs中不工作

Node.js clearInterval在nodejs中不工作,node.js,Node.js,我在构造函数中声明了一个变量refreshIntervalId constructor() { super(); this.init = false; a=this; this.refreshIntervalId; } 我有一个consume方法,它被另一个程序调用。它有一个setinterval,每次调用它时我都需要清除它 onConsume(requests) { if (this.init) { console.log("cleari

我在构造函数中声明了一个变量refreshIntervalId

constructor() {
    super();
    this.init = false;
    a=this;
    this.refreshIntervalId;
}
我有一个consume方法,它被另一个程序调用。它有一个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时,会打印“clearing interval”和“但是refreshIntervalId为null”,我可以看到有2个SetInterval正在执行

有人知道为什么refreshIntervalId是空的吗。我尝试了使用this.refreshIntervalId的不同组合,或者只使用refreshIntervalId本身,但都不起作用


任何帮助都将不胜感激。

是否使用粘贴在顶部的构造函数在同一对象上使用onConsume方法?如果是,则将其引用为.refreshIntervalId,而不是this.refreshIntervalId。如果不是,那么我会确保“a”引用的对象的间隔是正确的。还有,记得吗

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

为什么要将此赋值给全局变量?如果您有多个实例,它将无法正常工作,请直接使用
。我也尝试了此方法。refreshIntervalId也会给出相同的结果。分配给此方法的结果相同。我也尝试过这个.refreshIntervalId,它给出了相同的结果您是否也尝试过在setInterval和clearInterval中使用这个.refreshIntervalId?还要澄清的是,在第二次调用onConsume后,预期的结果是清除旧的间隔并设置新的间隔?