微信小程序clearInterval清除定时器无效
遇到问题:clearInterval清除定时器无效,可能是多次调用setInterval。
/**
* 页面的初始数据
*/
data: {
timer:null,
},
防止触发多次setInterval,在调用之前先clearInterval一次
/**
* 设置定时器
*/
setTimer: function (options) {
let that = this;
let num = 0;
//防止执行了大于一次,在调用之前先清除一次
clearInterval(that.data.timer);
that.setData({
timer:null
})
that.setData({
timer:setInterval(()=>{
num++;
console.log(num);
if(num>5){
clearInterval(that.data.timer);
//如果不放心还可以把句柄置为null
that.setData({
timer:null
})
}
})
})
},
切换页面清除定时器,在onHide,onUnload中都调用clearInterval
/**
- 生命周期函数–监听页面隐藏
*/
onHide: function () {
let that = this;
clearInterval(that.data.timer);
that.setData({
timer:null
})
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
let that = this;
clearInterval(that.data.timer);
that.setData({
timer:null
})
},