tengo el siguiente JavaScript (y jQuery) Código:¿Cómo puedo devolver un valor recuperado por AJAX a la función principal de la función actual en JavaScript?
function checkEmail(email) {
if (email.length) {
$.getJSON('ajax/validate', {email: email}, function(data){
if (data == false) {
// stuff
}
return data;
})
}
}
Quiero la función anónima a return data
a la función madre, checkEmail()
. He intentado hacer algo como esto:
function checkEmail(email) {
if (email.length) {
var ret = null;
$.getJSON('ajax/validate', {email: email}, function(data){
if (data == false) {
// stuff
}
ret = data;
})
return ret;
}
}
Pero por supuesto esto no funcionará porque la llamada $.getJSON()
es asíncrona, por lo que será return ret
antes de la petición GET está terminado.
¿Algún comentario aquí?
¡Gracias!
Veo este mismo problema publicado aquí muchas veces al día. ¡No empieces a escribir AJAX hasta que no entiendas cómo funciona, gente! –
Y luego la gente vota este queston en vez de cerrarlo como duplicado como se supone que deben hacerlo. –
FWIW, esto se cierra como un duplicado de http://stackoverflow.com/questions/1094716/how-does-one-return-data-to-the-original-caller-function-in-javascript, que pregunta bastante más o menos lo mismo. – Shog9