Trust
Trust
  • 发布:2018-09-20 17:08
  • 更新:17 小时前
  • 阅读:4840

uni-app 中清除定时器

分类:uni-app

无论是获取短信码,还是在活动页轮询获取当前活动最新信息,都需要用到定时器。
但是,定时器如果不及时合理地清除,会造成业务逻辑混乱甚至应用卡死的情况。

uni-app 中在某个页面中启动定时器后,一定要在页面关闭时将定时器清除掉。即在页面卸载(关闭)的生命周期函数里,清除定时器。

onUnload:function(){  
    if(this.timer) {  
        clearInterval(this.timer);  
        this.timer = null;  
    }  
}

附件中提供了简单的 demo,下载后直接在 HBuilderX 中运行即可。

5 关注 分享
464058465@qq.com 1570044080@qq.com chipsl@qq.com lioil wjp1975@163.com

要回复文章请先登录注册

704599298@qq.com

704599298@qq.com

回复 wjp1975@163.com:
我按照这个方法,加了判断,然后判断里面设置清除定时器和等于null,但是定时器中的方法还是执行了
17 小时前
wjp1975@163.com

wjp1975@163.com

我也被这个问题困扰了很久。同样的代码在H5端是正常的,在手机APP端,就很卡,业务逻辑混乱,看代码也发现问题。最后按作者的方法,在停止定时器时,先判断是否为null,然后停止定时器,再给定时器赋值为null。问题就解决,也不卡了,业务也正常了。
2019-09-08 15:44
lioil

lioil

nice。这个方式完美解决了再uni-app安卓端 导致的无法清空定时器的问题。因为没有加判断条件和将timer = null。导致页面卸载的时候无法清空定时器。
2019-08-14 14:02
406040200@qq.com

406040200@qq.com

onBackPress也可以用,但是对于浏览器端的返回却无效
2019-01-01 00:48