Maison >interface Web >js tutoriel >Comment enchaîner trois appels asynchrones de manière séquentielle avec les promesses jQuery ?
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!