Никак не могу понять, почему alert всегда выдает undefined?
Растыкал дебаг - return возвращает, что надо, но работает ПОСЛЕ alert. Т.е. управление передается в функцию и код продолжает работать дальше. Вопрос, почему? И как этого избежать?
Код:
function successFunction(position) {
var lat = position.coords.latitude;
var lng = position.coords.longitude;
alert(codeLatLng(lat, lng));
}
Код:
function codeLatLng(lat, lng) {
var latlng = new google.maps.LatLng(lat, lng);
geocoder.geocode({'latLng': latlng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
console.log(results);
if (results[1]) {
for (var i=0; i<results[0].address_components.length; i++) {
for (var b=0;b<results[0].address_components[i].types.length;b++) {
if (results[0].address_components[i].types[b] == "administrative_area_level_2") {
city= results[0].address_components[i];
break;
}
}
}
return city.long_name;
} else {
return "0";
}
} else {
console.log("Geocoder failed due to: " + status);
return "1";
}
});
}