function TimerSystem() {
this.timer = null;
this.addTimer = function(timer, delay) {
this.timer = timer;
setTimeout(function() {
timerSystem.timer = null;
}, delay);
};
}
var timerSystem = new TimerSystem();
timerSystem.addTimer(setTimeout(function() {
//do something...
}, 1000), 1000);
它正在我的源头工作。 让我知道这种方式是对的吗? 我认为这不是聪明的
答案 0 :(得分:0)
记住timeoutId,并在计时器功能失效时将其设置为null,如下所示:
function schedule(func, millsecs) {
var timeId = setTimeout(function() {
//the function runed, clear this timeId
timeId = null;
func();
}, millsecs);
return {
isrunning : function() {
return timeId != null;
}
};
}
var sinfo = schedule(function() {
console.log('done');
}, 500);
console.log('just now', sinfo.isrunning());
http://jsfiddle.net/rooseve/AVna6/1/
此外,为什么你需要“检查setTimeout是否正在运行”?