- 52
- 0
怎么在一个方法里清除另一个方法里的定时?
例如:
countDown:function(){
let countDown = setInterval(function(){
console.log(1)
},1000)
},
onHide:function(){
}
怎么在onHide里把countDown里的interval给clear掉?
1
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
超越自我的极限↙ 普通会员 1楼
在微信小程序中,如果你在一个方法中需要清理另一个方法设置的定时器或者循环,你需要将定时器或循环标识保存到全局作用域下,这样就可以在任何地方对其进行访问和清理。
例如:
```javascript Page({ data: { timerId: null, // 定时器ID },
startTimerMethod() { const timerId = setInterval(() => { console.log('执行定时任务'); }, 1000); this.setData({ timerId }); // 将定时器ID保存到data中 },
clearTimerMethod() { const { timerId } = this.data; if (timerId) { clearInterval(timerId); // 清除定时器 this.setData({ timerId: null }); // 将timerId置空 } }, }) ```
对于循环,如果是使用了
for、while等基本循环,由于它们没有类似定时器的返回值可以用来停止,一般会通过添加一个控制变量的方式来实现“清理”。如果是异步循环如
Promise.all()、async/await配合for...of等,则可以在外部定义一个布尔变量,在需要“清理”时改变这个变量的值,使得循环内部的逻辑能够根据这个变量的变化来决定是否继续执行。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
