Trust
Trust
  • 发布:2018-09-20 17:08
  • 更新:2024-01-21 01:21
  • 阅读:25725

uni-app 中清除定时器

分类:uni-app

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

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

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

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

7 关注 分享
4***@qq.com 1***@qq.com c***@qq.com lioil w***@163.com 3***@qq.com 786395613

要回复文章请先登录注册

8***@qq.com

8***@qq.com

回复 5***@qq.com :
在Vue生命周期的beforeDestroy()方法再清空一次。
2024-01-21 01:21
5***@qq.com

5***@qq.com

回复 2***@qq.com :
你这个问题解决了么?
2022-10-06 16:32
2***@qq.com

2***@qq.com

回复 HealerLZH :
我也遇到了这个问题 怎么清除都清不掉
2022-07-26 20:05
2***@qq.com

2***@qq.com

回复 HealerLZH :
你好 这个问题最后解决了吗
2022-07-26 20:05
2***@163.com

2***@163.com

但是离开页面后,不是立刻执行unload 吧,定时器还会调用好多次才关闭
2022-07-22 08:52
风云杭州

风云杭州

每次这样写挺麻烦的,感觉uniapp框架应该支持自动清除定时器
2020-12-03 12:13
小徐同志

小徐同志

为什么this.timer = null呀
2020-11-01 21:41
evans

evans

回复 HealerLZH :
你好,这个问题你是怎么解决的,我也是清除了定时器,但是方法还是执行
2020-07-02 14:13
luch

luch

这不是常识吗,单页面应用里都是这样清除定时器的
2020-06-08 16:03
s***@163.com

s***@163.com

按这样写,页面卸载的时候有时可以清除定时器,但有时清除不了
2020-06-08 15:52