处理我有这个简单的功能,从Mapquest服务获取GIS数据:AJAX回调返回值jQuery中
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对象不会更新,然后函数返回响应。
任何想法将有帮助谢谢!
这是一个很好的技术,虽然我添加了状态来返回true或false。现在这个函数是完美的 –
@raheelshan你的代码总是返回true,因为回调被异步调用到ajax调用的'success'处理程序中。尽管如此,提供的回调不会返回任何东西,所以我没有看到这种'status' var ^^的点 – moonwave99