2
我使用Google Maps JS API對某些地址進行地理編碼,但我需要訪問地理編碼功能回調中的許多變量。地理編碼器是一個異步功能。如何將變量傳遞給保持不變的異步回調函數?
我的代碼如下:
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
最後一個項的值。 markerData
數據絕對正確。
我需要一種將addressData
和markerData
傳遞給geocoder.geocode
函數的方法,該函數可以在回調中訪問。
您可能要與周圍的IIFE呼叫。這樣,通過的變量將保持不變。 – Arg0n
我不確定爲什麼這已被標記爲重複,尤其是與鏈接的問題。這是在不同情況下發現的另一個問題。僅僅因爲問題具有相同的答案並不是一個重複的問題。 – Mike