uniapp + vue3微信小程序开发(9)setTimeout,setInterval清除不了
uniapp中setTimeout,setInterval定时器清除不了的bug
·
在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
})
更多推荐
已为社区贡献7条内容
所有评论(0)