У меня есть (надеюсь, довольно простая) проблема с Javascript.Я искал, но не нашел ничего, что действительно имеет отношение к проблеме.
В основном у меня есть функция (addToGlobe), которая при запуске вызывает две другие функции (codeAddressLat и codeAddressLng).Обе вызываемые функции должны возвращать значение с плавающей точкой первой функции, которая затем использует их.Подфункции определенно работают правильно - я сделал оператор print, чтобы проверить, что переменная «numfinal» в каждом имеет значение, и это так.
Однако, когда я добавляю операторы print в вызывающую функцию (как прокомментированокод), он возвращает «неопределенный».Таким образом, проблема, кажется, заключается в том, что возвращается значение numfinal.
Спасибо :))
function addToGlobe(uname, uid, pmcity) {
// Get lat & long of city
var pmlat = codeAddressLat(pmcity);
var pmlong = codeAddressLng(pmcity);
log(pmlat); // PROBLEM! Prints 'undefined'
log(pmlong); // PROBLEM! Prints 'undefined'
// Rest of function removed to keep it simple
}
function codeAddressLat(inputcity) {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(-34.397, 150.644);
geocoder.geocode( { 'address': inputcity}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var llsplit = new Array();
bkresult = String(results[0].geometry.location);
bkresult = bkresult.replace(/[\(\)]/g, "");
llsplit = bkresult.split(',');
numfinal = parseFloat(llsplit[0]);
return numfinal;
} else {
log('<b><font color="#C40031">Geocode was not successful:</b> ' + status);
}
});
}
function codeAddressLng(inputcity) {
// Basically the same function as above. Removed for simplicity
}