我有一个从 mapquest 获取 gis 数据的简单函数:
function reverseGeocoding(lat,lng){
var url = 'http://open.mapquestapi.com/nominatim/v1/reverse?format=json&lat=' + lat + '&lon=' +lng+' &zoom=18&addressdetails=1';
$.ajax({
url: url,
crossDomain:true,
success: function(response){
$("#revgeo-place").html(response.display_name);
}
});
}
我该如何改进它,以便当从另一个函数调用此函数时,返回值会异步更新?
我不想在函数中显式地放置任何 DOM 引用,并且我想保持 ajax 异步,理想情况下应该是这样的:
$("#revgeo-place").html(reverseGeocoding(lat,lng).display_name);
function reverseGeocoding(lat,lng){
var url = 'http://open.mapquestapi.com/nominatim/v1/reverse?format=json&lat=' + lat + '&lon=' +lng+' &zoom=18&addressdetails=1';
$.ajax({
url: url,
crossDomain:true,
success: function(response){
console.log(response);
return response;
}
});
}
看起来当我这样做时 DOM 对象没有更新,然后函数返回响应。
任何想法都会有所帮助,谢谢!