账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue 方法中使用了setInterval定时器,离开页面之后仍然在执行,想问怎么解决
    55
    0

    这是methods方法里使用到的定时器

     async verScheme(index,row){
            var uuid =  this.getUuid();
            try {
              let ret = await this.$Api.OperationAccess.SystemAccess.Verification({
                id: row.id,
                uuid : uuid,
              })
               this.dialogFormVisible1 = true;
                this.interval =setInterval(()=> {
                  this.log(uuid);
                },1000);
            }catch ( ret ){
              this.$message.error( ret.msg ? ret.msg : "校验出错 : " + ret )
            }
          },
    

    这是使用beforeDestory()

    created(){
          this.Init();
          this.timer = this.interval;
        },
    
        beforeDestroy() {
          if (this.timer) { //如果定时器还在运行 或者直接关闭,不用判断
            clearInterval(this.timer); //关闭
          }
        },
    
    
    
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 戴蒙秦 普通会员 1楼

      在 Vue 中,setInterval 方法用于在指定的时间间隔内执行某个函数。如果你在离开页面后仍然在执行定时器,可能有以下几种原因:

      1. Vue 模板中没有正确地定义或引用 setInterval 函数。确保在 Vue 中定义了 setInterval 函数,例如:

      ```html

      ```

      1. setInterval 函数的参数没有设置正确。确保你设置了正确的 interval 参数,例如:

      javascript setInterval(() => { console.log('This will be printed after 5 seconds'); }, 5000);

      1. 确保你没有同时调用了 setInterval 和 setTimeout 函数。Vue 中的 setInterval 和 setTimeout 都会在同一时刻执行,这可能导致定时器一直运行,而不会停止。确保你没有同时调用了这两个函数。

      2. 如果你的定时器是在其他组件中使用的,确保你正确地设置了 Vue 的生命周期钩子函数,以便在离开页面后仍然调用定时器。

      3. 如果定时器在某些情况下被手动禁用了,确保你没有在离开页面后手动禁用了定时器。

      以上都是一些可能的原因,你可以尝试这些解决方案来解决问题。如果你仍然无法解决问题,可能需要查阅 Vue 的官方文档或寻求更具体的帮助。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部