В этом коде:Как получить доступ к переменной функции callbak глобально в JQuery
$(document).ready(function() {
var lat = 0;
var lng = 0;
function getLatLng(address) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
lat = results[0].geometry.location.lat(); //how do I access lat
lng = results[0].geometry.location.lng() //and lng outside function ormake it global
}
});
alert(lat); // does not display only show's the 0
}
getLatLng();
});
Я хочу, чтобы показать alert(lat)
лат не равен нулю.
Как я могу получить к нему доступ?
благодарит заранее!
Предупреждение не внутри функции обратного вызова, так что это на самом деле работает, что * до * завершения вызова геокода. Переместите его на 1 строку. – Archer
У вас уже есть доступ к 'lat'. Проблема в том, что вызов «geocode» выполняется асинхронно и еще не завершен, когда выполняется «предупреждение». Вы не можете обойти это с помощью грубой силы: невозможно напечатать результат, прежде чем вы его получите. – Jon
geocoder.geocode() - это асинхронный процесс, поэтому вам нужно активировать функцию обратного вызова. –