如何删除由famo.us Timer类设置的TimerInterval(我不完全理解famo.us如何包装natvie JS-setInterval方法)。在原生JS中,我可以做到:
var id = setInterval(fn, delay);
clearInterval(id);
我不想使用上述解决方案,因为famo.us不推荐使用。我可以用famo.us Timer Class实现上述目的吗?
Timer.setInterval( function(){
console.log('exec function');
//this.doSomething() is a function defined on the classes prototype
this.doSomething();
}.bind(this), 3000);
//how can I referenc the above function?!
Timer.clear(/*function*/);
我需要将setInterval函数绑定到'this',因为我在区间执行中使用'this' - context
非常感谢任何帮助。
答案 0 :(得分:1)
添加对您正在使用的函数的引用,因为setInterval
返回函数引用。
Working Example code here in the Splash view: 及以下:
this.count = 0;
this.timerFunc = Timer.setInterval( function(){
this.count += 1;
this.surface.setContent('count ' + this.count);
}.bind(this), 1000);
this.surface.on('click', function(){
Timer.clear(this.timerFunc);
}.bind(this));
答案 1 :(得分:0)
这样的事可能有用:
var fn = function(){
console.log('exec function');
}
Timer.setInterval(fn, 3000);
// Time passes
Timer.clear(fn);