假设我有以下代码:
var locations = [];
$.each(data.articles_data, function (index, article) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': article.location}, function(results, status) {
if (status == 'OK') {
var lat = results[0].geometry.location.lat();
var lng = results[0].geometry.location.lng();
locations.push(lat + ' - ' + lng);
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
});
if(locations.length > 0) {
// Unfortunately code never get to this point cause locations array is empty
}
您会看到,最初在$。外部声明的 locations 数组仍然为空,即使我已在geocoder.geocode的回调函数中向其中添加了数据。
有没有一种方法可以使它正常工作?我确实需要在回调内填充位置,然后在外部进行访问。
在此先感谢您的帮助