En javascript, Itérateurs asynchrones et Générateurs asynchrones Offrez les mêmes fonctionnalités qui pourraient être implémentées efficacement en utilisant les primitives de la langue javascript. Alors, pourquoi ne pas choisir une solution simple plutôt que de vous mettre dans une autre confusion?
Cet article traite des itérateurs asynchrones vs générateurs asynchrones en JavaScript ainsi que des exemples appropriés. Alors, commençons!
Itérateurs en javascript
En JavaScript, "Itérateurs«Sont utilisés pour accéder aux structures de données synchrones telles que des tableaux, des cartes et des ensembles. Ils sont principalement basés sur le «suivant()«Méthode, qui comprend deux propriétés:«suivant" et "valeur»:
Maintenant, nous allons vérifier le fonctionnement des itérateurs en JavaScript à l'aide d'un exemple.
Exemple: Utilisation des itérateurs en javascript
Nous allons créer un «Nombres«Objet ayant deux propriétés:«commencer" et "fin". Ensuite, nous ajouterons un "capacité d'itération" au "Nombres"Objet en utilisant le"Symbole.iterator ()" méthode.
Le "Symbole.iterator ()«La méthode sera invoquée une fois, au début du«pour… de”Loop, et renvoie un objet itérable. Après avoir effectué cette opération, le «pour… de”Loop accédera à l'objet itérable et récupérera les valeurs dans la séquence d'itération:
Soit nombres =Le ci-dessus, "suivant()«La méthode sera invoquée et renvoie le«valeur«En tant qu'objet:
pour (laissez la valeur des nombres)Écrivez le code fourni dans la fenêtre de la console et exécutez-le:
Nous avons réussi à itération de chaque élément du «Nombres”Objet qui peut être vu dans le GIF suivant:
Comme mentionné précédemment, les itérateurs JavaScript réguliers peuvent vous aider à itérer les données synchrones. Et si les valeurs venaient de manière asynchrone à cause de tout retard? Dans un tel scénario, vous devez implémenter le Itérateurs asynchrones en javascript.
Itérateurs asynchrones en javascript
Les itérateurs asynchrones sont intégrés dans ES9 pour gérer les sources de données asynchrones. Cela fonctionne similaire à l'itérateur régulier, sauf que le «suivant()«La méthode dans un itérateur asynchrone renvoie un«Promesse"Cela résout le"valeur" et "fait»Valeurs de propriétés d'un objet.
Convertir un itérateur régulier en itérateur asynchrone en javascript
Si vous souhaitez convertir un itérateur ordinaire en un itérateur asynchrone, suivez les instructions ci-dessous:
Exemple: itérateurs asynchrones en javascript
Nous allons maintenant convertir l'itérateur régulier défini dans l'exemple précédent en itérateurs asynchrones en suivant les règles spécifiées.
À cette fin, nous remplacerons le «Symbole.Iterator ()" avec le "Symbole.asynciterator ()" méthode. Ensuite, nous ajouterons le mot-clé "asynchrone" avant le "suivant()" méthode. En utilisant "attendre" dans le "suivant()«La méthode définira le temps de réaliser la promesse après«2”SECONDES:
Soit nombres =Pour itération sur un objet itérable asynchrone, le «pour attendre… de»Loop sera utilisé de la manière suivante:
(async () =>La sortie affichera les valeurs itérées dans la boîte d'alerte après un retard de deux secondes:
À ce stade, vous avez compris le fonctionnement des itérateurs asynchrones. Maintenant, nous allons avancer et apprendre sur Générateurs asynchrones en javascript.
Générateurs en JavaScript
Les itérateurs en JavaScript sont très utiles; Cependant, ils ont besoin d'une programmation minutieuse pour effectuer leurs fonctionnalités attendues. Le Fonction du générateur JavaScript est un autre outil puissant qui vous permet de définir un algorithme itératif à l'aide d'un seul "non continu" fonction.
Initialement, une fonction de générateur n'exécute pas son code lorsqu'elle est invoquée; Au lieu de cela, il renvoie un type spécifique d'itérateur appelé «Générateur". La fonction du générateur peut être invoquée autant de fois que nécessaire, et à chaque appel, il renvoie un nouveau "Générateur,«Qui peut être itéré une fois.
Pour écrire la fonction du générateur, le «fonction*»La syntaxe est utilisée. Cette fonction comprend également un «rendement”Opérateur qui fait une pause l'exécution de la fonction du générateur jusqu'à ce que la valeur suivante d'un objet soit demandée.
Exemple: utilisant des générateurs en javascript
Nous définirons un «Générateur”Fonction qui renvoie les valeurs d'un«point de départ" pour "point final" en utilisant le "rendement»Opérateur. Le "*"Ajouté avec le"fonction«Le mot-clé indique que«Générateur()«Est une fonction de générateur, pas une fonction régulière normale.
Fonction * Générateur (startPoint, endingpoint)Dans la prochaine étape, nous invoquerons le «Générateur()»Fonction qui renvoie un générateur stocké dans le«X" objet:
Soit x = générateur (1, 5);Enfin, pour itérer le «X«Générateur, nous utiliserons le«pour… de" boucle:
pour (consom de x)L'exécution du programme fourni montrera les valeurs itérées:
Si vous souhaitez récupérer les résultats basés sur les promesses du «Générateur", Vous devez utiliser"Générateur asynchrone»Dans le programme JavaScript.
Générateurs asynchrones en javascript
Générateur asynchrone Dans JavaScript, fonctionne similaire à la fonction du générateur, sauf que le «suivant()«La méthode dans le générateur asynchrone renvoie un«Promesse"Cela résout le"valeur" et "fait»Valeurs de propriétés d'un objet.
Convertir la fonction du générateur en itérateur asynchrone en javascript
Suivez les instructions fournies ci-dessous pour convertir une fonction de générateur en un itérateur asynchrone en javascript:
Maintenant, nous allons vous montrer la procédure pratique pour convertir une fonction de générateur en générateurs asynchrones en JavaScript.
Exemple: générateurs asynchrones en javascript
Tout d'abord, nous ajouterons le «asynchrone»Mot-clé avant de définir le«asyncSequence ()"Fonction asynchrone. L'asyncSequence () donne un «Promesse«Qui sera réalisé en une seconde:
asyncFunction * asyncSequence (startpoint, endingpoint)Dernièrement, "pour attendre… de”La boucle est utilisée pour itérer et retourner le générateur asynchrone:
(async () =>Ce programme JavaScript renverra des valeurs de «1" pour "5"Tout en faisant une lacune de"un" deuxième:
Nous avons fourni les informations essentielles liées à Itérateurs asynchrones et Générateurs asynchrones. Les deux peuvent cependant être utilisés pour itération sur des données asynchrones en JavaScript; Il peut être difficile pour les débutants de maintenir la logique interne ou la définition des itérateurs asynchrones, tandis que les générateurs asynchrones offrent plus efficace et Moins sujet aux erreurs façon d'utiliser les itérateurs. Il cache également le La complexité de l'itérateur et rend le code concis et lisible.
Alors, nous vous recommandons Utilisez des générateurs asynchrones Pour gérer les itérations liées à la collecte de données asynchrones.
Conclusion
Itérateur asynchronesable Générateurs asynchrones sont utilisés pour itérer les données, fournies après un certain temps. Les itérateurs asynchrones exécutent le «Symbole.asynciterator ()«Méthode pour retourner un«itérateur», Tandis que les générateurs asynchrones renvoient un type spécial d'itérateur«Générateur«En soi, qui peut être utilisé partout où l'itération est requise. Cet article a discuté des itérateurs asynchrones et des générateurs asynchrones en JavaScript.