uniapp + vue3微信小程序开发(9)setTimeout,setInterval清除不了

在uniapp中,我们使用了定时器,然后在onUnload中清除了定时器,但是发现并没有清除掉,还在执行,然后你的第一反应就是:这不是setInterval的通用病吗,然后我明确告诉你,在uniapp里面还真不是,因为setTimeout,setInterval都清除不了

1、解决方法

目前来看,有且只有下面一种方法,增加一个变量cleartime,默认为0,在离开页面时,将值置为1,最开始定义的定时器中,检查到此值为1,就将定时器关闭,很奇怪,只有在定时器里面操作,才能关闭

onShow(() => {
		timer.value = setInterval(() => {
			if (cleartime.value === 1) {
				clearInterval(timer.value)
				timer.value = null
			} else {
				// 你要处理的逻辑
			}
		}, 1000)
	})
onUnload(() => {
	cleartime.value = 1
})

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值