if (!isConfirmOnline) {
this.timer = setInterval(checkOfflineStatus.bind(this), OFFLINE_STATUS_INTERVAL);
}
function checkOfflineStatus () {
console.log('开启了定时器--');
IpuMobile.offlineStatus([], res => {
let isConfirmOnline1 = this.getOnlineResult(res);
console.log('定时器获取在线结果', isConfirmOnline1);
this.$store.commit('common/setIsOffline', !isConfirmOnline1);
if (isConfirmOnline1) {
clearInterval(this.timer);
this.timer = null
console.log('关闭了定时器--');
// 提交数据
submitCacheContent();
}
});
}
引用日志发现 定时器获取在线结果--true 以及 关闭了定时器--都执行了很多次,正常期望 同时执行一次
shodata:true
function checkOfflineStatus () {
if(!this.shodata) return
this.shodata=false
console.log('开启了定时器--');
IpuMobile.offlineStatus([], res => {
let isConfirmOnline1 = this.getOnlineResult(res);
console.log('定时器获取在线结果', isConfirmOnline1);
this.$store.commit('common/setIsOffline', !isConfirmOnline1);
if (isConfirmOnline1) {
clearInterval(this.timer);
this.timer = null
console.log('关闭了定时器--');
// 提交数据
submitCacheContent();
}
});
setTimeout(() => {
this.shodata=true
}, 1000);
}
这样你试试还会触发不 你是不是做了双重监造成的
function checkOfflineStatus () {
console.log('开启了定时器--');
if (!this.$store.state.common.isConfirmOnline1) {
clearInterval(this.timer);
this.timer = null
console.log('关闭了定时器--');
return
}
IpuMobile.offlineStatus([], res => {
const isConfirmOnline1 = this.getOnlineResult(res);
console.log('定时器获取在线结果', isConfirmOnline1);
this.$store.commit('common/setIsOffline', !isConfirmOnline1);
submitCacheContent();
});
}