今天在微信小程序遇到了一个问题
我的代码是这样的

// 关闭动画函数
AnimationOff() {
    //定义时间间隔器
    clearInterval(this.animationTimer)
},
DefineAnimation() {
    //定义时间间隔器
    this.animationTimer = setInterval(() => {
        console.log("执行");
    }, 1000)
},

但是当我执行了 AnimationOff 发现 clearInterval 并没有关掉时间间隔期

网上很多人说 在 开发者工具 右上角 点击详情 选择本地设置 将 自动运行体验评分 关掉
微信小程序clearInterval无法关闭时间间隔器问题解决-LMLPHP
但显然没有作用

其实这个问题叫定时器重构 我们要防止这种事情发生
将代码改成了这样

// 关闭动画函数
AnimationOff() {
    //定义时间间隔器
    clearInterval(this.animationTimer)
},
DefineAnimation() {
    //先清空 时间间隔期 防止重造问题
    clearInterval(this.animationTimer)
    //定义时间间隔器
    this.animationTimer = setInterval(() => {
        console.log("执行");
    }, 1000)
},

简单说 在要定义之前 先用 clearInterval 清楚一下 可以说这个问题还是非常坑的 希望官方能够修复吧
不然对没经历过的人来说真的不要太不友好

10-14 07:25