清除Famo.us框架中Timer类的setInterval

时间:2014-10-16 13:08:42

标签: javascript famo.us

如何删除由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

非常感谢任何帮助。

2 个答案:

答案 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);