小程序
小游戏
企业微信
微信支付
扫描小程序码分享
先调用罗盘 startCompass
监听罗盘 onCompassChange
停止监听罗盘 stopCompass
再调用罗盘 startCompass
此时监听的内容会直行两次,重复这个过程,监听内的代码会每次多执行一次,这个问题应该怎么处理
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
关注下,我在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指处理一次罗盘数据??
onCompassChange 的方法每调用一次会注册一个监听方法。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
关注下,我在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指处理一次罗盘数据??
onCompassChange 的方法每调用一次会注册一个监听方法。