Это позволяет вам отложить выполнение вашей функции обратного вызова до тех пор, пока не будет завершен ajax-запрос (или любая асинхронная операция). Это также можно использовать для вызова обратного вызова после завершения нескольких запросов ajax.
от вопрос уже есть ответ здесь:
Как вернуть ответ от асинхронного вызова? 33 ответаЭтот вопрос задают много раз в SO. Но все равно я не могу получить вещи.
Я хочу получить некоторое значение от обратного вызова. Посмотрите на сценарий ниже для уточнения.
function foo(address){
// google map stuff
geocoder.geocode( { 'address': address}, function(results, status) {
results[0].geometry.location; // I want to return this value
})
}
foo(); //result should be results[0].geometry.location; value
Если я попытаюсь вернуть это значение, просто получаю "undefined". Я последовал за некоторыми идеями из SO, но все еще не удается.
Это:
function foo(address){
var returnvalue;
geocoder.geocode( { 'address': address}, function(results, status) {
returnvalue = results[0].geometry.location;
})
return returnvalue;
}
foo(); //still undefined