小程序 关闭页面 清除定时器问题

var inerval=wx.setinterval(function(){},durtion)函数可以产生一个定时执行的函数,返回代表定时器的int值
clearinterval(interval)可以清除定时器。
首先定义一个产生interval的方法和结束interval的方法
var intervalis;
var durtion=1500
startinterval:function(){
  
  intervalis = setInterval(() => {
    console.log("create")
  
   }, durtion)
 
  console.log(intervalis,durtion)
},
endinterval:function(){
  
  for(var i=4;i<=intervalis;i++){
     clearInterval(i)
  }
},
两个按钮,分别触发statinterval()和endinterval()
start:function(){
  console.log("start")
  this.startinterval();
},
end:function(){
  console.log("stop")
    this.endinterval();
 }

在endinterval函数中为什么要这样写呢,因为在我点击一次开始按钮,再点击一次结束按钮,没有问题,interval被清除。
但是如果点击多次开始按钮,如果endinterval()方法中只写 clearinterval(intervalis)时,定时器方法仍然在执行。说明只清除了最后一次点击开始按钮产生的定时器。

说明每点击一次开始按钮,都会产生一个interval()定时器方法,而且每点击一次开始按钮,定时器中的方法会执行的比之前更快。每次都会生成一个interval(),要想要完全终止定时器,必须清除从第一次点击开始按钮到最后一次点击开始按钮之间产生的所有定时器。

至于为什么循环中的开始量是4,这个是在试验中发现每一次第一次点击开始按钮产生的interval都是4。这个需要再做实验。


原文:https://blog.csdn.net/xuexixuexien/article/details/79222693 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值