Heim >Web-Frontend >js-Tutorial >Wie verkettet man drei asynchrone Aufrufe nacheinander mit jQuery-Versprechen?

Wie verkettet man drei asynchrone Aufrufe nacheinander mit jQuery-Versprechen?

Linda Hamilton
Linda HamiltonOriginal
2024-10-29 08:20:30836Durchsuche

How to Chain Three Asynchronous Calls Sequentially with jQuery Promises?

Verketten von drei asynchronen Aufrufen mit jQuery-Versprechen

Sie haben drei asynchrone HTTP-Aufrufe, die Sie nacheinander ausführen müssen, wobei Daten von einem Aufruf übergeben werden zum nächsten. Der bereitgestellte Code verwendet verzögerte Objekte für zwei Funktionen, erfordert jedoch eine Erweiterung für drei Funktionen.

Gibt in jedem Fall das von $.ajax() zurückgegebene jqXHR-Objekt zurück. Diese Objekte sind Promise-kompatibel und ermöglichen die Verkettung mit .then()/.done()/.fail()/.always(). Für dieses Szenario ist .then() geeignet.

<code class="javascript">function first() {
   return $.ajax(...);
}

function second(data, textStatus, jqXHR) {
   return $.ajax(...);
}

function third(data, textStatus, jqXHR) {
   return $.ajax(...);
}</code>

Verketten Sie in der Funktion „Haupt“ die Funktionen mithilfe von .then().

<code class="javascript">function main() {
    first().then(second).then(third);
}</code>

Die Argumentdaten, textStatus und jqXHR stammen aus dem $.ajax()-Aufruf in der vorherigen Funktion. Mit anderen Worten: First() liefert Second() und Second() liefert Third().

(Verwenden Sie zur Veranschaulichung $.when('foo'), um ein erfülltes Versprechen anstelle von $ zu erzeugen. ajax(...)).

Das obige ist der detaillierte Inhalt vonWie verkettet man drei asynchrone Aufrufe nacheinander mit jQuery-Versprechen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn