今天遇到的问题主要是,我在使用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,在销毁之前直接清楚就会避免我当时的问题了

posted on 2025-01-13 19:11  许七安gyg  阅读(2)  评论(0)    收藏  举报