- 我正在尝试从谷歌地图 API 获取地址并在函数中返回该地址。我需要更改什么才能使这些显示出来?
$(document).ready(function() {
var lat = 17.4807865;
var lng = 78.4921649;
var returnAddress = getAddressFromlatlng(function(backaddr,lat,lng){
alert(" Inside : "+backaddr)
});
alert(returnAddress+" returned address ")
});
function getAddressFromlatlng(callback,lat,lng){
alert(lat+" : "+lng)
var geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(lat,lng);
geocoder.geocode({'latLng': latlng}, function(results, status){
alert(results[0].formatted_address)
callback(results[0].formatted_address);
});
}
最佳答案
这是不可能的,因为函数在值存在之前返回。
geocode
调用是异步的,因此您必须异步处理结果。您已经在回调函数中成功显示了该值,这就是处理结果的方式。
您可以从 getAddressFromlatlng
函数返回一个 promise ,但这并没有真正改变任何东西。这只是将回调函数包装在一个对象中,以便您可以与调用分开对结果进行异步处理。
关于javascript - 获取 google api 地址值作为 javascript 函数的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27875013/