#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
назначен уже, либо поместить код, который нуждается в этом, в функцию обратного вызова.