Função JavaScript não aguarda o término de outra para iniciar – javascript jquery
Pergunta:
Problema
Minha função não está aguardando a outra ser finalizada para ela poder continuar, por exemplo:
Exemplo:
function buscando_dados(){
$.post('ajax.php',{},function(dados){
alert(dados);
});
}
function buscar_dados(){
buscando_dados();
alert('prosseguindo'); //Prosseguindo está função sem esperar a outra acabar a requisição
}
Eu não sei como fazer para o alert('prosseguindo'); ser executado só depois do alert('dados'); e no momento não está acontecendo isso.
Como posso fazer isso?
Autor da pergunta Silvio Andorinha
Tuyoshi Vinicius
Sua função buscando_dados executa o metodo POST do jQuery que faz uma requisição assíncrona em AJAX você precisa prosseguir com a execução apos o callback da função POST.
Uma solução para oque você quer, pode ser isso.
function buscando_dados(func){
$.post('ajax.php',{},function(dados){
func.call(this,dados);
});
}
function buscar_dados(){
buscando_dados(function(dados){
alert('prosseguindo'); //Prosseguindo está função sem esperar a outra acabar a
});
}
passamos uma função por parâmetro que é executada no callback da função POST;
Você pode usar também o Ajax de forma síncrona.
function buscando_dados(){
$.ajaxSetup({async: false});
$.post('ajax.php',{},function(dados){
alert(dados);
});
$.ajaxSetup({async: true});
}
function buscar_dados(){
buscando_dados();
alert('prosseguindo');
}



