罗盘关掉再打开,出现两个线程问题
先调用罗盘 startCompass
监听罗盘 onCompassChange
停止监听罗盘 stopCompass
再调用罗盘 startCompass
监听罗盘 onCompassChange
此时监听的内容会直行两次,重复这个过程,监听内的代码会每次多执行一次,这个问题应该怎么处理
2 回复
关注下,我在wx.onCompassChange里面计数,发现基本每隔1s会返回10次左右的数据,和每隔1s返回5次没对应。
这样会导致我频繁的setData,基本上没多久,真机上演示就卡主了,我在每隔5s去获取用户的定位就没办法同步了
我现在调整成1s返回一次定位,监控发现基本每隔1s,计数都在10次以上
我做了如下调整:
写了个定时器
setInterval(()=>{
this.counter++;
},200);
在罗盘兼听中做了如下判断
wx.onCompassChange(res=>{
if(this.counter % 5===0){
//每隔1s才处理罗盘数据
在这里打印了this.counter发现还是重复执行了多次,,
}
})
请问:我要怎么控制到1s指处理一次罗盘数据??