UNPKG

simpleitjs

Version:
66 lines (65 loc) 2.01 kB
"use strict"; var Ticker = /** @class */ (function () { function Ticker(attr) { this.id = attr.id; this.interval = attr.interval; this.callback = attr.callback; this.nxtTick = attr.nxtTick; } /** * Registers a tick, callbacks given function per interval. * @param {number} interval in miliseconds * @param {Function} callback function to execute */ Ticker.getTick = function (interval, callback) { var id = Ticker.currId; Ticker.currId++; Ticker.ticks.push(new Ticker({ id: id, interval: interval, callback: callback, nxtTick: new Date().getTime() + interval })); return id; }; /** * Removes a registered tick. * @param {number} interval in miliseconds * @param {Function} callback function to execute */ Ticker.removeTick = function (id) { var index = -1; for (var i = 0; i < Ticker.ticks.length; i++) { if (Ticker.ticks[i].id == id) { index = i; break; } } if (index != -1) { Ticker.ticks.splice(index, 1); } }; Ticker.initDate = new Date(); Ticker.currId = 0; Ticker.ticks = []; return Ticker; }()); (function () { setInterval(function () { var currTime = new Date().getTime(); for (var i = 0; i < Ticker.ticks.length; i++) { if (Ticker.ticks[i].nxtTick < currTime) { Ticker.ticks[i].nxtTick = currTime + Ticker.ticks[i].interval; Ticker.ticks[i].callback(); } } }, 100); if (typeof window !== "undefined") { var win = window; win.SimpleJS = win.SimpleJS || {}; win.SimpleJS.Ticker = Ticker; } })(); if (typeof module != "undefined" && typeof module.exports != "undefined") { module.exports = Ticker; }