Tengo el siguiente código:encadenamiento múltiple jQuery Ajax pide
$.when(loadProjects())
.then(function() {
$.when.apply($, buildRequests(projects))
.then(function(data) {
$.when.apply($, vcsRequests(buildTypes))
.then(function(data) {
$.when.apply($, vcsDetailRequests(vcsRoots))
.then(function(data) {
alert('done');
});
});
});
});
Cada una de las funciones pasaron a when.apply (matrices) de retorno de las solicitudes. No puedo realizar las llamadas buildRequests hasta que las llamadas desde loadProjects() hayan finalizado ya que dependen de la información devuelta por esas llamadas. Cada llamada depende de la información devuelta por la llamada anterior, por lo que deben estar en este orden. Necesito saber cuándo terminaron todas las llamadas para poder procesar los datos devueltos.
¿Hay alguna manera más clara de abordar esto?
Parece que tienes muchas solicitudes para encadenar. Entonces consideraría combinar todas las solicitudes en una sola ... mucho más eficiente que encadenar ... –
¿Cómo podría hacer eso? Tengo que llamar uno después del otro debido a la API que estoy usando. – JFoulkes
Publiqué la respuesta sobre cómo lograr esto porque a los comentarios realmente no les gusta el formato del código :) –