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