我在构造函数
中声明了一个变量refreshIntervalIdconstructor() {
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本身的不同组合,但没有任何效果。
非常感谢任何帮助。
答案 0 :(得分:0)
onConsume是一个方法在同一个对象上使用你粘贴在顶部的构造函数吗?如果是这样,您将其引用为a.refreshIntervalId而不是this.refreshIntervalId。如果没有,那么我会确保' a'正在引用具有间隔的对象的正确实例。另外,请记住
undefined == null; // returns true
undefined === null; // returns false