Heim  >  Artikel  >  Web-Frontend  >  Wie verkettet man asynchrone Aufrufe und übergibt Daten zwischen ihnen mit jQuery-Versprechen?

Wie verkettet man asynchrone Aufrufe und übergibt Daten zwischen ihnen mit jQuery-Versprechen?

Linda Hamilton
Linda HamiltonOriginal
2024-10-30 14:52:02553Durchsuche

How to Chain Asynchronous Calls and Pass Data Between Them with jQuery Promises?

Asynchrone Aufrufe mit jQuery-Versprechen verketten

Wie kann ich drei asynchrone Aufrufe mit jQuery-Versprechen verketten und Daten zwischen ihnen übergeben?

Wenn Sie mit drei HTTP-Aufrufen arbeiten, die nacheinander ausgeführt werden müssen, sollten Sie die Verwendung von jQuery-Versprechen in Betracht ziehen, um die Aufrufe zu verketten und die Datenübertragung zu erleichtern.

Der Versuch, verzögerte Objekte für zwei Funktionen zu verwenden, führt zunächst zu einer Teillösung. Die Ausweitung dieses Ansatzes auf drei Funktionen erfordert jedoch eine andere Strategie.

Verketten Sie die Aufrufe und übergeben Sie Daten

Geben Sie bei jedem Aufruf das von $.ajax generierte jqXHR-Objekt zurück (). Diese Objekte folgen der Promise-Schnittstelle und können mit .then()/.done()/.fail()/.always() verkettet werden.

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

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

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

Verketten Sie die Funktionen innerhalb der Hauptfunktion mit .then() wie folgt:

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

Die an nachfolgende Funktionen übergebenen Daten-, TextStatus- und jqXHR-Argumente stammen aus dem $.ajax()-Aufruf in der vorhergehenden Funktion. Dadurch kann jede Funktion auf die Ausgabe des vorherigen Aufrufs zugreifen und diese nutzen.

Zur Veranschaulichung verwendet eine Demo unten $.when('foo') anstelle von $.ajax(...), um eine bereitzustellen erfülltes Versprechen.

<code class="javascript">function main() {
    $.when('foo').then(second).then(third);
}</code>

Durch die Verkettung der Versprechen und die Weitergabe von Daten auf diese Weise können Sie die drei asynchronen Aufrufe synchron und effektiv ausführen.

Das obige ist der detaillierte Inhalt vonWie verkettet man asynchrone Aufrufe und übergibt Daten zwischen ihnen 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