JavaScript использует возврат одной функции внутри другой

У меня есть функция A, которая использует функцию B внутри, я хочу использовать возвращаемую переменную из функции B внутри функции A, но она всегда дает мне неопределенный...

Я много искал в Интернете ответы, но я становлюсь безнадежным.

заранее

function initialize() {
  geocoder = new google.maps.Geocoder();


    var latlng = new google.maps.LatLng(40.714352, -74.005973);

    ....

    }
    map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
    **latlng=codeAddress("lisboa")**;


  }

function codeAddress(a) {

    geocoder.geocode( { 'address': a}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {

      latlong=results[0].geometry.location;

        alert(latlong);
        return latlong;

      } else {
        alert('Geocode was not successful for the following reason: ' + status);
      }
    });

1 ответ

Вам нужно использовать обратный вызов для обработки результатов:

function initialize() {
    .... // your code
codeAddress(function(res){
    alert(res);
});         


function codeAddress(callback) {
      var latlng = new google.maps.LatLng(40.714352, -74.005973);
      geocoder.geocode({'latLng': latlng}, function(res, sta) {
      if (sta== google.maps.GeocoderStatus.OK) 
      {
        if (res[1]) 
            callback(res[1].formatted_address);
        else 
            alert("Nothing found");
      }

  });
}
}
Другие вопросы по тегам