当在某个页面中的onload中使用setInterval,在setInterval中调用setData保存数据(整数),设定app.globalData.data4的值每次加一,结果第一次关闭页面后打开app.globalData.data4显示的值每次加二,第二次加三,第三次加四以此类推,我设定它应该是恒定加一不变的,不知道是setData刷新不及时还是setInterval的问题,求助各位大佬
代码如下:
data: {
small: 0,//app.globalData.data4,//进度初始值
middle: 0,
large: 0
},
onLoad: function (options) {
this.setData({
small: app.globalData.data4
})
this.timer = setInterval(() => {
app.globalData.data4++;
this.setData({
small: app.globalData.data4
})
}, 3000)
}
在unload那里,clearInterval(this.timer);把定时器清理掉。你只是开了太多定时器了
前辈,我只是开了一个定时器为什么也会出现这样的结果?
因为你的页面一开,就会开一个定时器,然后关闭页面的时候,定时器并不会关掉。所以,在你页面开了关掉再开就会有两个定时器在运行。
噢噢原来是这样,那请问如果我要一个定时器在程序运行期间一直运行需要如何操作?
就是你写的那样咯。
这就尴尬了,我的页面上的数据跳着更新,不知道是我的问题还是setData本身的问题