У меня есть асинхронный метод, который вызывает геокодер Google Maps для получения адреса. Это метод проверки местоположения «LocationValidator», который должен возвращать true или false. Прямо сейчас я не могу заставить его вернуть ничего, кроме ложного. Похоже, что когда вызывается «внешний обратный вызов», он возвращает false каждый раз, даже если я ничего не возвращаю из метода isResults.Не удается вернуть true, используя асинхронный метод gmaps geocode внутри синхронного метода
Вот мой код
function LocationValidator(value, element, paras) {
var address = "";
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': value }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
address = results[0].formatted_address;
if (isResults("Inside callback", address)) {
return true;
}
} else {
return false;
}
});
isResults("Outside callback", address);
}
function isResults(where, address) {
if (address != "") {
return true;
}
}
Но я ничего о призыве isResults не возвращаются («Вне обратного вызова», адрес) ;, я думал, что валидатор будет искать истинный или ложный быть возвращены? – user1186050