// 延时计时器 function Timeout(name) { this.timer = null; this.time = ''; this.callback = ''; this.workState = false; this.name = name?name:-33; } // 开启计时器并添加 Timeout.prototype.start = function(callback, time, exe) { // 配置执行函数 if(typeof callback == 'function' && typeof time == 'number') { this.callback = callback; this.time = time; // 获取缓存的session let name = sessionStorage.getItem('acTabs'); if(exe != 'exe') { this.workState = true; callback(); }else { // 已经停止了 if(!this.workState) { return; } // 清除计时器 clearTimeout(this.timer); if(this.name == -33 || this.name == name) { this.timer = setTimeout(callback, time); }else { setTimeout(()=>{ this.open(); }, 300); } } }else { console.warn('未完整配置参数!'); } }; // 开启计时器 Timeout.prototype.open = function() { var callback = this.callback; var time = this.time; this.start(callback, time, 'exe'); }; // 关闭计时器 Timeout.prototype.stop = function() { clearTimeout(this.timer); this.workState = false; }; // 设置循环体 但不开始 Timeout.prototype.init = function (callback, time) { this.callback = callback; this.time = time; this.workState = true; }; // 关闭后重启计时器 Timeout.prototype.restart = function() { this.workState = true; this.open(); }; export default Timeout;