"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je créer des boucles asynchrones en JavaScript ?

Comment puis-je créer des boucles asynchrones en JavaScript ?

Publié le 2024-11-03
Parcourir:757

How Can I Create Asynchronous Loops in JavaScript?

Boucles asynchrones en JavaScript

Bien que JavaScript fournisse différents types de boucles, la création d'une boucle qui suspend l'exécution pour attendre un appel asynchrone peut être stimulant. En effet, mélanger du code synchrone et asynchrone peut entraîner un comportement inattendu.

Solution : adopter l'approche asynchrone

Pour surmonter cette limitation, il est nécessaire d'adopter pleinement l'événement. approche basée sur JavaScript. Cela implique d'utiliser une fonction qui sera appelée une fois l'appel asynchrone terminé. La boucle peut ensuite continuer son exécution après l'appel du rappel.

Présentation de la fonction asyncLoop

Une fonction d'assistance appelée asyncLoop peut être créée pour faciliter ce comportement de boucle asynchrone. Il prend trois paramètres :

  • itérations : le nombre de fois que la boucle doit s'exécuter.
  • func : la fonction à exécuter à chaque itération.
  • callback : le fonction à appeler lorsque la boucle est terminée.

La fonction asyncLoop maintient un index de variable interne pour suivre l'itération en cours et marque une variable terminée pour indiquer quand la boucle est terminée. Dans la fonction, il existe un objet boucle interne qui fournit les méthodes suivantes :

  • next() : avance la boucle d'une itération.
  • iteration() : renvoie l'itération actuelle.
  • break() : termine la boucle plus tôt.

Pour lancer la boucle, loop.next() est appelé. Chaque fois que la fonction func est invoquée, elle peut appeler loop.next() pour continuer la boucle ou loop.break() pour la terminer.

Exemple d'utilisation :

L'exemple suivant montre comment utiliser la fonction asyncLoop pour créer une boucle asynchrone :

asyncLoop(10, (loop) => {
  someFunction(1, 2, (result) => {
    console.log(loop.iteration());
    loop.next();
  });
}, () => {
  console.log('cycle ended');
});

Ce code exécutera someFunction 10 fois de manière asynchrone et enregistrera le numéro d'itération dans la console. Le message de fin de cycle sera imprimé une fois la boucle terminée.

En utilisant cette approche, les développeurs JavaScript peuvent créer des boucles asynchrones qui fonctionnent de manière transparente dans l'environnement piloté par les événements, évitant ainsi les problèmes potentiels de blocage du script et du navigateur.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3