我的计时器有问题。我知道如果我设置obj = nul;
或删除对象delete obj;
,它将从内存中删除。但是如果我的对象有间隔,它就不起作用了。 delete
和obj = null;
无法正常工作。如何删除定时器而不在删除的对象中执行此操作。
我认为Angular4只清除那些将被删除的组件中的计时器。后台计时器无法删除。
function MyFunc() {
setInterval(function () {
console.log('Interval');
}, 1000);
}
var obj = new(MyFunc.bind({
message: 'some_message'
}));
// From some time remove object
setTimeout(function() {
delete obj;
console.log('Delete object');
}, 5000);
抱歉英语。
答案 0 :(得分:0)
似乎无法自动执行此操作。您需要手动清除间隔。您可以定义这样的类:
class TimerTask {
constructor(time){
this.id = setTimeout(() => this.run(), time);
}
run(){ /* override that in subclasses */ }
clear(){
clearTimeout(this.id);
}
}
所以可以这样做:
class Log extends TimerTask {
run(){
console.log("done");
}
}
const test = new Log(1000);
然后有些人:
test = test.clear();