这是我从coffee转换成的js:
set_timer: function() {
var _this = this;
return this.timer = setInterval(function() {
_this.set({
time_to_complete: _this.get("time_to_complete") + 1
});
if (_this.get("time_to_complete") > 3) {
console.log("End of clear.");
return _this.reset_timer(_this.timer);
}
}, 1000);
},
reset_timer: function() {
clearInterval(this.timer);
return this.set({
time_to_complete: 0
});
}
然后将其称为:
this.model.set_timer();
由于某种原因,这还不清楚,而我的间隔不断产生那些
console.log
这是相同错误的另一个示例,但在Coffeescript中,并用下划线的mixin方法命名为
$
set_timer: (model) =>
$.timer = setInterval =>
model.set time_to_complete: model.get("time_to_complete") + 1
if model.get("time_to_complete") > 3
console.log "End of clear."
_.reset_timer model
, 1000
reset_timer: (model) ->
clearInterval $.timer
model.set time_to_complete: 0
最佳答案
在清除功能之前,您已经返回了该功能。首先清除它,然后返回。
reset_timer: function() {
clearInterval(this.timer);
return this.set({
time_to_complete: 0
});
}
至于
this
的值,请小心,因为this
是由调用方式决定的,而不是如何声明的。关于javascript - 有谁知道此clearInterval使它不清楚吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16450492/