Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia, como vocês fazem quando precisam fazer várias chamadas AJAX encadeadas? A forma mais simples de se fazer seria colocar o código da nova function no onSucess e assim recursivamente. Problema que as funções que serão chamadas já estão escritas em functions separadas(novaFuncaoAjax()), teria alguma forma de encadear assim?
$.ajax({
method: "POST",
url: "some.php",
data: { name: "John", location: "Boston" }
})
.sucess(function() {
novaFuncaoAjax();
});
function novaFuncaoAjax(){ .sucess(function( msg ) {
alert( "Hello World!" );
});
}
No jQuery sei que existe o recurso [Callbacks](https://api.jquery.com/jQuery.Callbacks/), já usei e sei que funciona. Porém estou usando um projeto legado que usa o framework Prototype e teria que fazer na mão este controle.>
Em 22/11/2017 at 13:01, Billy disse:
Sim, você pode fazer o que disse, e essa forma de usar as funções também são callbacks...
Outra opção seria utilizar promises, mas ficaria mais complexo, e se o que você precisa é apenas encadear 2 ou 3 ajax, os callbacks resolvem.
Eu usaria Promise.all() caso não haja ligação entre os ajax's
Utilizando Promises consigo fazer encadeamento também? Ou seja, esperar um terminar pro outro começar?
Li algumas coisas sobre Promises mas confesso que não entendi muito bem. Teria um exemplo simples pra mostrar?
Fiquei longe da comunidade uns dias... sim você consegue...
@gRoOvE
segue o melhor artigo de promises do mundo
https://developers.google.com/web/fundamentals/primers/promises
>
4 horas atrás, Billy disse:
Fiquei longe da comunidade uns dias... sim você consegue...
@gRoOvE
segue o melhor artigo de promises do mundo
https://developers.google.com/web/fundamentals/primers/promises
Bacana, já estava com este link salvo pra ler mais tarde, obrigado.
Sim, você pode fazer o que disse, e essa forma de usar as funções também são callbacks...
Outra opção seria utilizar promises, mas ficaria mais complexo, e se o que você precisa é apenas encadear 2 ou 3 ajax, os callbacks resolvem.
Eu usaria Promise.all() caso não haja ligação entre os ajax's