Я боролся с этим в течение нескольких часов, и даже после прочтения нескольких примеров в Stack я не смог получить эту работу. Это не помогает, что я новичок JS.Использование функции обратного вызова с Google Geocode
Я пытаюсь получить информацию об адресе из API геокодирования Google, а затем передать объект другой функции. В моем чтении я понимаю, что функция, которую я использую для извлечения информации, является асинхронной, поэтому мне нужно использовать функцию обратного вызова для ее чтения. Однако, когда я пытаюсь сделать это, я все равно получаю «неопределенный», возвращенный моей консолью. Я знаю, что информация поступает от Google точно, поскольку, когда я использую console.log() в объекте результата, он возвращается правильно.
В любом случае, вот что я работаю с:
function onSuccess(position) {
getLocationData(position, function(locationData) {
console.log(locationData);
});
}
function getLocationData(position, callback) {
geocoder = new google.maps.Geocoder();
var location = 'Billings,MT';
if(geocoder) {
geocoder.geocode({ 'address': location }, function (results, status) {
if(status == google.maps.GeocoderStatus.OK) {
return results[0];
}
});
}
callback();
}
Как я уже говорил, хотя, все я с этим «не определен». Если я поставлю 'console.log (результаты [0])' над возвратом getLocationData(), возвращенный объект верен. Любая помощь приветствуется.
возможно дубликат https://stackoverflow.com/questions/6847697/how-to-return-value-from-an-asynchronous-callback-function – Bergi