定时器开启之后,触发关闭后定时器的内容还会持续执行多次是什么原因?
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 以及 关闭了定时器--都执行了很多次,正常期望 同时执行一次
回复
1个回答

test
2024-07-02
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);
}
这样你试试还会触发不 你是不是做了双重监造成的
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容