-
Notifications
You must be signed in to change notification settings - Fork 0
/
interval-handler.min.js
1 lines (1 loc) · 1.02 KB
/
interval-handler.min.js
1
!function(t,e){"function"==typeof define&&define.amd?define([],function(){return e(t)}):"object"==typeof module&&module.exports?module.exports=e(t):t.IntervalHandler=e(t)}("undefined"!=typeof self?self:this,function(r){"use strict";if("function"!=typeof r.setTimeout||"function"!=typeof r.clearTimeout)throw Error("No support of setTimeout or clearTimeout");function f(){this.timer=[]}return f.interval=3e3,f.prototype._getTimer=function(e){var i=null;return this.timer.forEach(function(t){t.fnc!==e||(i=t)}),i},f.prototype._createTimer=function(t){var e={id:null,fnc:t};return this.timer.push(e),e},f.prototype.setTimer=function(t,e){if("function"==typeof t){var i=this._getTimer(t)||this._createTimer(t);null!==i.id&&this.clearTimer(i.fnc);for(var n=[],o=2;o<arguments.length;o++)n.push(arguments[o]);i.id=r.setTimeout(function(){i.fnc.apply(r,n)},"number"==typeof e?e:f.interval)}},f.prototype.clearTimer=function(e){e?this.timer.forEach(function(t){t.fnc===e&&r.clearTimeout(t.id)}):this.timer.forEach(function(t){r.clearTimeout(t.id)})},f});