Вот что я работаю с: getLocation ('123 Foobar Ln');Узел Ошибка обратного вызова геокодера Google
function getLocation(location) {
console.log(location); // prints 123 Foobar Ln
getLocationData(location, function(gotLocation) {
console.log('hello?'); // this doesn't print
return gotLocation;
});
}
function getLocationData(location, callback) {
geocoder.geocode(location, function(err, res) {
if (res[0] != undefined) {
geoaddress = (res[0].formattedAddress);
addressmessage = 'Formatted Address: ' + geoaddress;
callback(addressmessage);
} else {
geocoder.geocode(cleanedAddress, function(err, res) {
addressmessage = 'null';
if (res[0] != undefined) {
geoaddress = (res[0].formattedAddress);
addressmessage = 'Formatted Address: ' + geoaddress;
callback(addressmessage);
} else {
addressmessage = 'Address could not be found: ' + location;
callback(addressmessage);
}
});
}
});
}
Я изо всех сил стараюсь, чтобы getLocation делал что-либо с обратным вызовом из getLocationData.
только Ouput я получаю, когда я бегу следующее: 123 Foobar Ln
Может кто-то указать на то, что я делаю неправильно здесь?
Вы никогда его не называете. вы просто установите его равным этой строке. – 1252748
Исправлено, что с помощью 'callback (addressmessage), но он все равно ничего не возвращает =/ –
Сначала методы' geocode' являются aysnc, поэтому вы вызываете свой обратный вызов до их завершения. переместите его на дно функции обратного вызова в каждом. Кроме того, вы не используете свои параметры ошибки. В будущем ниже каждой функции с параметром ошибки выведите ошибку, если она существует, чтобы получить некоторое представление. 'if (err) {console.log ('geocode error', err);}', 'if (err) {console.log ('geocode clean error', err);}' – 1252748