// 延时计时器
|
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;
|