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 :
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 :
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.
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