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