Javascript 如何将变量传递给保持不变的异步回调函数?
我正在使用GoogleMapsJSAPI对一些地址进行地理编码,但我需要访问地理编码函数回调中的许多变量。地理编码器是一个异步函数 我的代码如下:Javascript 如何将变量传递给保持不变的异步回调函数?,javascript,google-maps,asynchronous,Javascript,Google Maps,Asynchronous,我正在使用GoogleMapsJSAPI对一些地址进行地理编码,但我需要访问地理编码函数回调中的许多变量。地理编码器是一个异步函数 我的代码如下: for (var prop in markerData) { geocoder.geocode( { address: addressData }, function(results, status) { if (status == 'OK') { lat = results[0].geometry.l
for (var prop in markerData) {
geocoder.geocode( { address: addressData }, function(results, status) {
if (status == 'OK') {
lat = results[0].geometry.location.lat();
lng = results[0].geometry.location.lng();
console.log(addressData);
markerInfo = {
lat: lat,
lng: lng,
firstname: markerData[prop].firstname,
lastname: markerData[prop].lastname,
company: markerData[prop].company,
addressFormatted: addressData,
street: markerData[prop].street,
city: markerData[prop].city,
postcode: markerData[prop].postcode,
telephone: markerData[prop].telephone
}
markers[i] = new google.maps.Marker({
map: map,
position: {lat: lat, lng: lng},
title: markerData[prop].firstname + ' ' + markerData[prop].lastname,
markerInfo: markerInfo
});
markers[i].addListener('click', function() {
updateInfo(this.markerInfo);
});
$.get('cache.php', {
address: addressData,
lat: lat,
lng: lng
});
}
});
}
addressData
始终是markerData
的最后一个条目的值<代码>标记数据数据绝对正确
我需要一种将
addressData
和markerData
传递给geocoder.geocode
函数的方法,该函数将在回调中访问。我的注释示例:
for (var prop in markerData) {
(function(addressData){
geocoder.geocode( { address: addressData }, function(results, status) {
//Other code
});
})(addressData);
}
你可能想用生命来包围电话。这样,传递的变量内部将保持不变。我不确定为什么会将其标记为重复,尤其是与链接的问题。这是在不同情况下发现的不同问题。仅仅因为一个问题有相同的答案并不意味着它是一个重复的问题。这是完美的。从没听说过生活,威尔读过。非常感谢。