Геокодеру Google Maps не удается назначить результат

#javascript #google-maps

#javascript #google-карты

Вопрос:

Геокодер работает нормально, но, похоже, я не могу использовать результат.

  var naddress;
 var ngc = new google.maps.Geocoder();
 ngc.geocode({'latLng': nll}, function(results, status) {
 if (status == google.maps.GeocoderStatus.OK) {
   if (results[0]) {
    alert(results[0].formatted_address);
    naddress = results[0].formatted_address;
    }
   }
 });
alert(naddress);
  

Он показывает мне правильный адрес при первом предупреждении (), но второй пуст.
Я делаю что-то не так?

Комментарии:

1. Что произойдет, если вы разместите первое предупреждение ПОСЛЕ назначения? И как вы узнаете, какое предупреждение какое?

2. Тот же результат. Связано ли что-нибудь с тем, что эта часть кода находится внутри функции обратного вызова ajax-запросов? Казалось, что он работает вне обратного вызова ajax.

Ответ №1:

Нет гарантии, в каком порядке будет выполнена функция, переданная geocode , и первый оператор после вызова geocode . Поэтому вам либо нужно проверить, был ли naddress назначен уже, либо поместить код, который нуждается в этом, в функцию обратного вызова.