Maison >interface Web >js tutoriel >Comment attendre simultanément les fonctions de rappel asynchrones ?

Comment attendre simultanément les fonctions de rappel asynchrones ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-10 22:59:02725parcourir

How to Wait for Asynchronous Callback Functions Simultaneously?

Attendre simultanément les fonctions de rappel asynchrones

Réaliser la synchronisation de plusieurs fonctions de rappel asynchrones peut être un défi. Dans les scénarios où vous exigez l'achèvement de toutes les fonctions avant de continuer, il est crucial de mettre en œuvre un mécanisme pour attendre leur achèvement.

Compteur manuel avec tableau

Un simple L'approche implique l'utilisation d'un tableau de booléens nommés « done » pour suivre l'état du rappel. Dans chaque fonction de rappel, définissez done[i] sur true pour indiquer son achèvement. Créez une boucle qui vérifie en permanence si toutes les entrées de "done" sont définies sur true. Une fois qu'ils le sont, procédez au calcul requis.

JQuery Promises

La méthode $.ajax() de jQuery renvoie une promesse, qui vous permet d'enchaîner et de gérer des opérations asynchrones. . En utilisant $.when(), vous pouvez créer un tableau de promesses et attendre qu'elles soient toutes résolues. Lorsque toutes les promesses sont résolues, les résultats sont disponibles dans les arguments de la fonction de rappel.

Promesse standard ES6

Si votre environnement prend en charge les promesses natives, vous pouvez utiliser Promise.all (). Cette méthode prend un tableau de promesses et renvoie une seule promesse qui se résout une fois que toutes les promesses d'entrée ont été résolues. Vous pouvez ensuite accéder aux résultats de chaque promesse dans la fonction de rappel.

Opérations asynchrones prometteuses

Si une opération asynchrone particulière ne renvoie pas de promesse, vous pouvez créer manuellement une promesse pour cela. Enfermez l'opération asynchrone dans une fonction et utilisez une méthode solve() dans le rappel pour renvoyer le résultat sous forme de promesse.

Bluebird Promises

Bluebird, une promesse populaire bibliothèque, étend les fonctionnalités des promesses standard. Promise.map() vous permet de mapper et d'exécuter facilement des opérations asynchrones sur un tableau de données, simplifiant ainsi le processus d'attente de plusieurs fonctions de rappel.

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