我在循环中反复调用google api函数。 每次我想删除地址数组中的一个元素。javascript - google地理编码 - 关闭/循环问题
for(var i = 0; i < AddressObject.addressToArray.length; i++){
srPerformGeocode(AddressObject);
console.log(AddressObject.addressToArray);
AddressObject.addressToArray.splice(0, 1);
}
// --------------------------------------------------------------
// Perform geocoding
// --------------------------------------------------------------
function srPerformGeocode(AddressObject)
{
address = AddressObject.addressToArray.join(",");
console.log(AddressObject.addressToArray);
if (geocoder){
geocoder.geocode({'address': address.trim() }, function (results, status)
{
if (status == google.maps.GeocoderStatus.OK){
console.log("geocoded " + AddressObject.addressToArray);
// Do something
}
else{
alert("FAIL");
}
});
}
}
这似乎是发生的是,循环运行我的时间, 和功能srPerformGeocode运行每次我使用时间的 我循环的最后一个值。
['field1' ,'field2' ,'field3' ,'field4' ]
['field1' ,'field2' ,'field3' ]
['field1' ,'field2' ]
['field1' ]
geocoded field1
geocoded field1
geocoded field1
geocoded field1
[Javascript闭合内部循环 - 简单实用示例]的可能重复(http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example) – rds 2013-01-17 17:56:22