小程序清除定时器clearinterval无效的原因
- 发表于
 - 前端
 
微信小程序如果使用了setInterval计时器,默认退回上一页或关闭页面并不会清空定时器clearinterval,这会造成手机过热、无限计时、甚至小程序挂死的情况。
小程序clearinterval无效解决
小程序clearinterval清除定时器无效,原因是定时器使用与清除方法不对导致的,我们应将定时器绑定变量,这样在关闭页面清空定时器clearinterval时,才能找到定时器ID。正确的使用方式如下:
|   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21  |    data: {     //设置定时器     loanTime: ''   },   //定时器方法   timer: function() {     let that = this     that.data.loanTime = setInterval(function() {       that.setData({         nowTime: '运行中'       })     }, 1000)   },   //实时定时器   onShow: function() {     this.timer()   },   //清除定时器   onUnload: function() {     clearInterval(this.data.loanTime)   },  |  
检查微信小程序定时器无法清除的原因
我们可在onUnload方法中打印定时器方法
|   1 2 3  |    onUnload: function() {     console.log(this.data.loanTime)   },  |  
如果打印出的是int类型ID,说明clearinterval方法找到了定时器,即能正确清除定时器,如果打印出的为空/报错或undefined,则说明定时器未找到,失败,这样就是使用方法有问题,修改为上边提供的方法即可。
   原文连接:小程序清除定时器clearinterval无效的原因  所有媒体,可在保留署名、
  原文连接
的情况下转载,若非则不得使用我方内容。