Когда я просматриваю этот код, это поведение, которое я наблюдаю: код обработчика ответа пропускается до завершения оставшейся функции, а затем выполняется код обработчика. Это, конечно, не то, что я хочу, потому что код, который появляется после ответа, зависит от кода в обработчике ответа.Функция обратного вызова для Google Geocode API не выполняется немедленно
var geocoder = new google.maps.Geocoder();
function initializePlaces() {
var destination_LatLng;
var destination = document.getElementById("destination_address").value;
geocoder.geocode({'address': destination}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK)
{
destination_LatLng = results[0].geometry.location;
} else if (status == google.maps.GeocoderStatus.ZERO_RESULTS) {
alert("Bad destination address.");
} else {
alert("Error calling Google Geocode API.");
}
});
// more stuff down here
}
Что вызывает подобное поведение и как я могу изменить свой код, чтобы обеспечить обратный вызов перед кодом ниже?
геокодирования работает асинхронно, вы не можете получить доступ результат внутри внешней функции –
Спасибо. Продлил мой вопрос. – JamesGold