jQuery-zurückgestelltes Objekt mit verschachtelten Ajax-Aufrufen

Ich habe eine Situation, in der meine Ajax-Anrufe in einer bestimmten Reihenfolge ausgeführt werden müssen. Ich habe jQuery Deferred-Objekte in anderen Situationen verwendet, kann jedoch anscheinend keine Möglichkeit finden, dieses Verhalten entsprechend anzupassen.

Ich habe eine Funktion, die eine Reihe von Funktionen ausführtajax Anfragen in seinem Leben. Einige der Anforderungen werden während des erfolgreichen Rückrufs anderer Anforderungen ausgeführt.

Meine Frage:Gibt es eine Möglichkeit, alle verschachtelten zurückgestellten Objekte auf das Original zurückzusetzen?$.when Anruf?

Ein vereinfachtes Beispiel wäre:

function nestedAjax() {
    $.get("/", function(){
        console.log("First ajax done.");
        $.get("/", function(){
            console.log("Second ajax done.");
        });
    });
};

Ich versuche das zu habennestedAjax Funktion zu verwenden$.when() und$.done() wie so:

$.when(nestedAjax()).done(function(){
    console.log("Complete");
});​

Mit der Konsolenausgabe lesen:

> First ajax done.
> Second ajax done.
> Complete.

Ich kann das erste zurückgebenget um das zu erreichen:

> First ajax done.
> Complete.
> Second ajax done.

Aber das ist natürlich nicht das, was ich brauche. Jede Hilfe wäre dankbar.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage