Node.js clearInterval在nodejs中不工作
我在构造函数中声明了一个变量refreshIntervalIdNode.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
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后,预期的结果是清除旧的间隔并设置新的间隔?