bpm-engine
Version:
Business Process Management Engine for JavaScript
42 lines (32 loc) • 2.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _asyncToGenerator2 = require("babel-runtime/helpers/asyncToGenerator");
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const DEFAULTS = {
onTick: () => {},
interval: 1000
};
class Clock {
constructor({ onTick = DEFAULTS.ONTICK, interval = DEFAULTS.INTERVAL }) {
this.onTick = onTick;
this.interval = interval;
this.tick();
}
tick() {
var _this = this;
this.timeout = setTimeout((0, _asyncToGenerator3.default)(function* () {
yield _this.onTick();
_this.tick();
}), this.interval);
}
stop() {
if (this.timeout) {
clearTimeout(this.timeout);
}
}
}
exports.default = Clock;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvQ2xvY2suanMiXSwibmFtZXMiOlsiREVGQVVMVFMiLCJvblRpY2siLCJpbnRlcnZhbCIsIkNsb2NrIiwiY29uc3RydWN0b3IiLCJPTlRJQ0siLCJJTlRFUlZBTCIsInRpY2siLCJ0aW1lb3V0Iiwic2V0VGltZW91dCIsInN0b3AiLCJjbGVhclRpbWVvdXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLE1BQU1BLFdBQVc7QUFDZkMsVUFBUSxNQUFNLENBQUUsQ0FERDtBQUVmQyxZQUFVO0FBRkssQ0FBakI7O0FBS0EsTUFBTUMsS0FBTixDQUFZO0FBQ1ZDLGNBQVksRUFBRUgsU0FBU0QsU0FBU0ssTUFBcEIsRUFBNEJILFdBQVdGLFNBQVNNLFFBQWhELEVBQVosRUFBd0U7QUFDdEUsU0FBS0wsTUFBTCxHQUFjQSxNQUFkO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQkEsUUFBaEI7QUFDQSxTQUFLSyxJQUFMO0FBQ0Q7O0FBRURBLFNBQU87QUFBQTs7QUFDTCxTQUFLQyxPQUFMLEdBQWVDLDJDQUFXLGFBQVk7QUFDcEMsWUFBTSxNQUFLUixNQUFMLEVBQU47QUFDQSxZQUFLTSxJQUFMO0FBQ0QsS0FIYyxHQUdaLEtBQUtMLFFBSE8sQ0FBZjtBQUlEOztBQUVEUSxTQUFPO0FBQ0wsUUFBSSxLQUFLRixPQUFULEVBQWtCO0FBQ2hCRyxtQkFBYSxLQUFLSCxPQUFsQjtBQUNEO0FBQ0Y7QUFsQlM7O2tCQXFCR0wsSyIsImZpbGUiOiJDbG9jay5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IERFRkFVTFRTID0ge1xuICBvblRpY2s6ICgpID0+IHt9LFxuICBpbnRlcnZhbDogMTAwMCxcbn07XG5cbmNsYXNzIENsb2NrIHtcbiAgY29uc3RydWN0b3IoeyBvblRpY2sgPSBERUZBVUxUUy5PTlRJQ0ssIGludGVydmFsID0gREVGQVVMVFMuSU5URVJWQUwgfSkge1xuICAgIHRoaXMub25UaWNrID0gb25UaWNrO1xuICAgIHRoaXMuaW50ZXJ2YWwgPSBpbnRlcnZhbDtcbiAgICB0aGlzLnRpY2soKTtcbiAgfVxuXG4gIHRpY2soKSB7XG4gICAgdGhpcy50aW1lb3V0ID0gc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB0aGlzLm9uVGljaygpO1xuICAgICAgdGhpcy50aWNrKCk7XG4gICAgfSwgdGhpcy5pbnRlcnZhbCk7XG4gIH1cblxuICBzdG9wKCkge1xuICAgIGlmICh0aGlzLnRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBDbG9jaztcbiJdfQ==