问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 微信小程序 Bug wx.getLocation(OBJECT) 客户端 6.5.3 2.0.0
- 当前 Bug 的表现(可附上截图)
通过for循环遍历列表信息,进行对列表信息中的定位信息进行更新为当前定位信息,报错undefined,初步认识到可能是for循环遍历较快,而获取定位信息较慢,造成这种情况,就想知道有没有可以让for循环中的每一轮执行时暂停一会再执行的方法,可能或提出将for循环放在wx.getLocation()方法之内,但是我的最终目的是通过for循环进行地址解析,所以for循环要放在外侧。
- 预期表现
列表中的各项定位信息更新为当前定位信息
- 复现路径
- 提供一个最简复现 Demo
getPositions:function(){
var list=[];
for(var i=0;i<3;i++){
var item = {
id: i,
name: 'pp'+i,
position: {
lat: 0,
lng: 0
}
};
list.push(item);
}
console.log(list);
for(var i=0;i
wx.getLocation({
success: function(res) {
list[i].position.lat=res.latitude;
list[i].position.lng=res.longitude;
},
})
}
console.log(list);
},
微信小程序开发问题解答
微信小程序开发者回答:
请使用闭包或者递归。
闭包:
onLoad() {
微信小程序开发者回答:
这个闭包处理好像不行啊
getPositions:function(){
微信小程序开发者回答:
不要用var ,用let啊。。。我都写给你了。。你非要改
微信小程序开发者回答:
抱歉,那个闭包中的
let j = i;
微信小程序开发者回答:
知错了
微信小程序开发者回答:
哈哈哈哈。。错一次,涨了经验啊~
微信小程序开发者回答:
找到解决方案了,需要用到线程。。。。。。。。不知道行不行
本文网址:http://www.91bianli.com/weixinxiaochengxu/48094.html