Les générateurs Générateur

Dit simplement, un générateur est une fonction renvoyant un itérateur. Commençons donc par présenter ce qu’est un itérateur. Il s’agit d’un objet possédant une interface permettant de : Itérateur

  • connaître sa valeur courante ;

  • se déplacer à la valeur suivante ;

  • savoir si l’on a atteint la fin de l’itérateur.

Plusieurs implémentations sont possibles ; voici par exemple une fonction permettant, à partir d’un tableau donné, d’obtenir un itérateur pour le parcourir :

const getArrayIterator = array => { 
 let index = -1 
 return { 
   next() { 
     index++ 
     return { 
       value: array[index], 
       done: index === array.length, 
     } 
   }, 
 } 
} 

Ici, les trois actions propres à l’itérateur sont faites au sein d’une seule fonction next, qui renvoie un objet contenant l’attribut value avec la valeur courante et l’attribut done qui est à true si on est au bout.

La manière la plus naturelle d’utiliser cet itérateur est par une boucle while :

let res 
do { 
 res = it.next() 
 console.log(res) 
} while (!res.done) 

Notez qu’un itérateur n’est pas nécessairement fini. Il peut...

Pour consulter la suite, découvrez le livre suivant :
couv_EIREA.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Introduction
Suivant
Les effets de Redux-Saga