Maison >interface Web >js tutoriel >Comment enchaîner trois appels asynchrones de manière séquentielle avec les promesses jQuery ?

Comment enchaîner trois appels asynchrones de manière séquentielle avec les promesses jQuery ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-29 08:20:30820parcourir

How to Chain Three Asynchronous Calls Sequentially with jQuery Promises?

Enchaînement de trois appels asynchrones avec les promesses jQuery

Vous disposez de trois appels HTTP asynchrones que vous devez exécuter en séquence, en transmettant les données d'un appel au suivant. Le code fourni utilise des objets différés pour deux fonctions mais nécessite une extension pour trois fonctions.

Dans chaque cas, renvoyez l'objet jqXHR généré par $.ajax(). Ces objets sont compatibles avec Promise, permettant le chaînage avec .then()/.done()/.fail()/.always(). Pour ce scénario, .then() est approprié.

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

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

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

Dans la fonction 'main', enchaînez les fonctions ensemble à l'aide de .then().

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

Les données des arguments, textStatus et jqXHR proviennent de l'invocation $.ajax() dans la fonction précédente. En d'autres termes, first() fournit second() et second() fournit troisième().

(À titre d'illustration, utilisez $.when('foo') pour produire une promesse tenue à la place de $. ajax(...)).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn