Maison > interface Web > js tutoriel > le corps du texte

Comment chaîner des appels asynchrones et transmettre des données entre eux avec les promesses jQuery ?

Linda Hamilton
Libérer: 2024-10-30 14:52:02
original
552 Les gens l'ont consulté

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

Chaînage d'appels asynchrones avec des promesses jQuery

Comment puis-je chaîner trois appels asynchrones à l'aide de promesses jQuery et transmettre des données entre eux ?

Lorsque vous traitez trois appels HTTP qui doivent s'exécuter séquentiellement, envisagez d'utiliser les promesses jQuery pour enchaîner les appels et faciliter le transfert de données.

Au départ, tenter d'utiliser des objets différés pour deux fonctions donne une solution partielle. Cependant, étendre cette approche à trois fonctions nécessite une stratégie différente.

Chaîner les appels et transmettre les données

Dans chaque appel, renvoyer l'objet jqXHR généré par $.ajax (). Ces objets adhèrent à l'interface Promise et peuvent être chaînés à l'aide de .then()/.done()/.fail()/.always().

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

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

function third(data, textStatus, jqXHR) {
   return $.ajax(...);
}</code>
Copier après la connexion

Dans la fonction principale, enchaînez les fonctions avec .then() comme suit :

<code class="javascript">function main() {
    first().then(second).then(third);
}</code>
Copier après la connexion

Les arguments data, textStatus et jqXHR transmis aux fonctions suivantes proviennent de l'appel $.ajax() dans la fonction précédente. Cela permet à chaque fonction d'accéder et d'utiliser la sortie de l'appel précédent.

À des fins d'illustration, une démo ci-dessous utilise $.when('foo') au lieu de $.ajax(...) pour fournir un promesse tenue.

<code class="javascript">function main() {
    $.when('foo').then(second).then(third);
}</code>
Copier après la connexion

En enchaînant les promesses et en transmettant les données de cette manière, vous pouvez exécuter les trois appels asynchrones de manière synchrone et efficace.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!