javascript - 获取 google api 地址值作为 javascript 函数的返回值

标签 javascript jquery google-maps google-maps-api-3 google-api

  • 我正在尝试从谷歌地图 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/

相关文章:

ios - 适用于 iOS 的 GoogleMaps SDK 是否存在标记动画?

javascript - JS函数将数字除以千、百、十等。

jquery - :not([attr ="value"]) and [attr! ="value"之间的性能有区别吗?

javascript - 在 HTML 多选列表中选择选项的最佳方法

javascript - 为什么这个 JQuery 日期选择器在第一次 ng-click 时没有加载?

javascript - 删除以前的标记(谷歌地图)

c# - 折线不显示(谷歌地图)

javascript - Firebase 使用键节点排序/过滤

javascript - 如何处理服务器( Node js)中表单的数据?

javascript - 检查嵌套数组中是否存在值