Ho il seguente codice:concatenazione multiple jQuery Ajax richiede
$.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');
});
});
});
});
Ciascuna delle funzioni passate in when.apply() array di ritorno di richieste. Non riesco a eseguire le chiamate buildRequests finché le chiamate da loadProjects() non sono terminate poiché si basano sulle informazioni restituite da tali chiamate. Ogni chiamata dipende dalle informazioni restituite dalla chiamata precedente, quindi devono essere in questo ordine. Devo sapere quando tutte le chiamate sono finite, così posso elaborare i dati restituiti.
C'è un modo più pulito per avvicinarsi a questo?
Sembra che ci siano molte richieste a catena. Vorrei quindi prendere in considerazione la combinazione di tutte le richieste in una sola .... molto più efficiente del concatenamento ... –
Come potrei fare per farlo? Devo chiamare uno dopo l'altro a causa dell'API che sto usando. – JFoulkes
Ho postato la risposta su come ottenere questo risultato perché ai commenti non piace la formattazione del codice :) –