一直在研究ajax()
使用$.when
我仍然不确定它是如何完全工作的,但这是我希望下面做的事情。
当用户每行添加城镇和国家时,它会转到 I get a response 中的 url,并将数组推送到循环.ajax()
外可用。.each()
目前,您将在 jsbin内部看到,当button
首先按下时,console.log 中的响应是,[]
然后当我再次按下它时,地址就会显示出来。然后第三次按下将再次添加不应该发生的地址。
jQuery
var addresses,town;
var arrayLocation = [];
$('button').click(function(){
addresses = function() {
deferred = new $.Deferred();
var arrayOfLines = $('#gps').val().split('\n');
$.each(arrayOfLines, function(index, item) {
town = item.split(',');
$.ajax({
url: 'http://maps.googleapis.com/maps/api/geocode/json?address='+town[0]+'&sensor=false',
dataType: 'json',
success: function (data) {
add = data.results[0].address_components[0].long_name;
lat = data.results[0].geometry.location.lat;
lng = data.results[0].geometry.location.lng;
arrayLocation.push("['"+add+"', "+lat+", "+lng+"]");
console.log("['"+add+"', "+lat+", "+lng+"]");
}
});
});
return arrayLocation;
};
$.when(addresses()).then(function(arrayLocation){
console.log(arrayLocation);
});
});