JavaScript/GoogleMaps/Geocode -变量在for循环的回调函数中被取消设置
JavaScript/GoogleMaps/Geocode - Variable being unset inside callback function within for loop
我已经搜索了SE 2个小时了,现在试图解决我失去'位置'变量值的原因。利用闭包看起来是最好的解决方案,但是在下面的回调函数中,我不知道如何正确地实现它。
有人能就这一现象提供一点见解吗?如何确切地补救?如果有关键术语,请指出来,以便我进行相应的研究。
感谢您的宝贵时间。
所讨论的代码:
for (var i = 0; i < locations.length; i++) {
geocoder.geocode({
'address': locations[i] // Returns location as expected
}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
alert(locations[i]); // returns undefined
}
})
}
澄清一下,我已经看到了最接近的帖子类似于这一个:当使用回调在javascript循环内,有没有办法保存's在循环中更新的变量在回调中使用?但我无法使它在这种情况下起作用。
再次感谢。
for (var i = 0; i < locations.length; i++) {
geocoder.geocode({
'address': locations[i] // Returns location as expected
}, (function (i) {
var location = locations[i];
function getLoc()
{
return location;
}
return function(results, status){
if (status == google.maps.GeocoderStatus.OK) {
console.log(getLoc());
}
}(i))
})
}
试试这个
相关文章:
- 如何将一个JavaScript函数回调为多个函数
- Meteor:异步函数回调异常:onAfterAction
- 从类方法中的 ajax post 函数回调函数更改 javascript 类属性
- jQuery动画函数回调错误
- jquery在html属性中添加函数回调,以便在其他事件中调用
- jquery getjson 函数:回调返回错误的字符串
- postMessage - 多个 postMessage 事件/函数/回调
- 在 Promise 调用的错误函数回调后附加对象的用法是什么
- 单击事件后的 JavaScript 函数回调
- 设置超时函数回调静态变量
- Jquery UI 模式匿名函数回调以打开对话框
- 函数回调、局部变量和 chrome.storage.sync.get
- Jquery Ajax 没有拾取选项参数中指定的函数回调
- 如何在 javascript 中进行函数回调
- 用函数回调封装JavaScript
- jQuery JavaScript嵌套异步函数回调
- Node.js-匿名函数回调
- 函数回调超出范围
- php代码的Javascript函数回调
- 如何使用函数回调在更改时提交表单