> var index=0;
enyo.kind({
name:"Kapping",
events: {
onBeat: ""
},
create : function(){
this.inherited(arguments);
this.timer = window.setInterval(enyo.bind(this,"beat"),1000);
},
destroy : function(){
if(this.timer != undefined){
window.clearInterval(this.timer);
}
this.inherited(arguments);
},
beat: function(){
this.doBeat({
//this.fetch();
});
index = index+1;
console.log('Doing beat ' + index);
}
}); / *
new Kapping()。renderInto(document.body);
其中beat
函数被调用2次。
另一个是
> var i =0;
enyo.kind({
name:"Heartbeat",
events: {
onBeat: ""
},
create : function(){
this.inherited(arguments);
this.timer = window.setInterval(enyo.bind(this,"beat"),1000);
},
destroy : function(){
if(this.timer != undefined){
window.clearInterval(this.timer);
}
this.inherited(arguments);
},
beat: function(){
this.doBeat({
});
i=i+1;
console.log("In timer callback " + i);
}
});
new Heartbeat().renderInto(document.body);
在此beat
函数中只调用一次。
我错过了什么?
答案 0 :(得分:0)
如果您希望它只运行一次,那么您希望setTimeout()
不是setInterval()
。
我不确定为什么你会看到不同的行为,但这可能是一个时间问题,因为这两个样本对我来说都是永远的。也许你的代码中的其他地方存在问题。