Section courante

A propos

Section administrative du site

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

Exemples

L'exemple suivant créer une fonction en boucle afin qu'elle se multiple par 4 à chaque appel :

  1. function *mafonction(x) {
  2.     while(x == x) {
  3.         x *= 4;
  4.         yield x;
  5.     }
  6. }
  7.  
  8. var mavariable = mafonction(1);
  9. console.log(mavariable.next().value);
  10. console.log(mavariable.next().value);
  11. console.log(mavariable.next().value);

on aura le résultat suivant :

4
16
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 :

  1. function *mafonctionparetape(x) {
  2.     x++;
  3.     yield x;
  4.     x+=2;
  5.     yield x;
  6.     x+=3;
  7.     yield x;
  8. }
  9.  
  10. var mavariable = mafonctionparetape(1);
  11. console.log(mavariable.next().value);
  12. console.log(mavariable.next().value);
  13. console.log(mavariable.next().value);

on aura le résultat suivant :

2
4
7


Dernière mise à jour : Samedi, le 9 juin 2018