今天遇到的问题主要是,我在使用setInterval 函数的时候定时获取数据库消息来更新我所设置的数据大屏汇总,但是登陆出去他还是一直在获取,一开始没出bug是因为我没有设置JWT和路由守护,设置了之后,他隔30秒就自动重新获取,然后直接被拦截,所以网页报错,后来经过查询发现,他是在组件销毁的时候还一直存在,所以直接加一个组件销毁钱清楚该计时器就行。因此做了如下改动
created() { this.loadRoomsData(); this.loadTodayOrders(); // 存储定时器ID this.timer = setInterval(() => { this.loadRoomsData(); this.loadTodayOrders(); }, 30000); }, // 组件销毁时清除定时器 beforeDestroy() { if (this.timer) { clearInterval(this.timer); this.timer = null; } }
一开始并没有设置定时ID,加一个定时器ID,在销毁之前直接清楚就会避免我当时的问题了
浙公网安备 33010602011771号