YIELD |
Rendement |
---|---|
JavaScript |
Syntaxe
[[rv =]] yield [[expression]]; |
Paramètres
Nom | Description |
---|---|
expression | Ce paramètre permet de retourner la fonction génératrice |
rv | Ce paramètre optionnel permet de retourner la valeur provenant de la méthode next() afin de reprendre son exécution. |
Description
Ce mot réservé permet d'interrompre et de reprendre une fonction génératrice. Lorsque vous l'appelez, ses paramètres formels sont liés à des paramètres réels, mais son corps n'est pas réellement évalué. Au lieu de cela, un générateur-itérateur est renvoyé. Chaque appel à la méthode next() du générateur-itérateur effectue un autre passage à travers l'algorithme itératif. La valeur de chaque étape est la valeur spécifiée par le mot clef yield. Considérez yield comme la version de générateur-itérateur de return, indiquant la limite entre chaque itération de l'algorithme. Chaque fois que vous appelez next(), le code du générateur reprend le relevé suivant le yield.
Remarque
- A partir de la version 29 du moteur Gecko (utilisé par Firefox version 29 ou plus, Thunderbird version 29 ou plus, SeaMonkey version 2.26 ou plus), la terminaison d'une fonction génératrice n'enclenche pas une erreur «generator has already finished», mais elle renvoi plutôt un objet IteratorResult avec la valeur { value: undefined, done: true }.
Exemples
L'exemple suivant créer une fonction en boucle afin qu'elle se multiple par 4 à chaque appel :
on aura le résultat suivant :
416
64
L'exemple permet de montrer une fonction reprenant le processus au point où il était 3 fois de suite dans la même fonction :
on aura le résultat suivant :
24
7