Mam następujący JavaScript (jQuery) i kod:Jak mogę zwrócić wartość pobraną przez AJAX do macierzystej funkcji bieżącej funkcji w JavaScript?
function checkEmail(email) {
if (email.length) {
$.getJSON('ajax/validate', {email: email}, function(data){
if (data == false) {
// stuff
}
return data;
})
}
}
chcę anonimową funkcję do return data
do funkcji dominującej checkEmail()
. Próbowałem robić coś takiego:
function checkEmail(email) {
if (email.length) {
var ret = null;
$.getJSON('ajax/validate', {email: email}, function(data){
if (data == false) {
// stuff
}
ret = data;
})
return ret;
}
}
Ale oczywiście to nie będzie działać, ponieważ wywołanie $.getJSON()
jest asynchroniczne, więc to będzie return ret
przed żądanie GET jest zakończona.
Jakieś myśli tutaj?
Dziękujemy!
Widzę ten sam problem opublikowany tutaj wiele razy dziennie. Nie zaczynaj pisać AJAX, dopóki nie zrozumiesz, jak to działa, ludzie !! –
A potem ludzie głosują na to zadanie, zamiast zamykać je jako duplikaty, tak jak powinny. –
FWIW, to jest zamykane jako duplikat http://stackoverflow.com/questions/1094716/how-does-one-return-data-to-original-aller-function-in-javascript, które prosi to samo. – Shog9