43 lines
875 B
JavaScript
43 lines
875 B
JavaScript
|
(function() {
|
||
|
var Timer;
|
||
|
|
||
|
exports.Timer = Timer = (function() {
|
||
|
function Timer(func1) {
|
||
|
this.func = func1;
|
||
|
this.running = false;
|
||
|
this.id = null;
|
||
|
this._handler = (function(_this) {
|
||
|
return function() {
|
||
|
_this.running = false;
|
||
|
_this.id = null;
|
||
|
return _this.func();
|
||
|
};
|
||
|
})(this);
|
||
|
}
|
||
|
|
||
|
Timer.prototype.start = function(timeout) {
|
||
|
if (this.running) {
|
||
|
clearTimeout(this.id);
|
||
|
}
|
||
|
this.id = setTimeout(this._handler, timeout);
|
||
|
return this.running = true;
|
||
|
};
|
||
|
|
||
|
Timer.prototype.stop = function() {
|
||
|
if (this.running) {
|
||
|
clearTimeout(this.id);
|
||
|
this.running = false;
|
||
|
return this.id = null;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
return Timer;
|
||
|
|
||
|
})();
|
||
|
|
||
|
Timer.start = function(timeout, func) {
|
||
|
return setTimeout(func, timeout);
|
||
|
};
|
||
|
|
||
|
}).call(this);
|