La méthode next
()
renvoie un objet possédant deux propriétés done
et value
. Cette méthode peut également recevoir un paramètre pour envoyer une valeur au générateur.
Syntaxe
gen.next(valeur)
Paramètres
valeur
- La valeur à envoyer au générateur
Valeur de retour
Un Object
possédant deux propriétés :
done
(un booléen)- vaut
true
si l'itérateur a atteint la fin de la série sur laquelle il itère. Dans ce cas, la propriétévalue
définit la valeur de retour pour l'itérateur. - vaut
false
si l'itérateur a pu fournir la prochaine valeur de la série. C'est la valeur par défaut si la propriétédone
n'est pas définie.
- vaut
value
- n'importe quelle valeur JavaScript renvoyée par l'itérateur. Cette propriété peut être absente lorsquedone
vauttrue
.
Exemples
Utiliser next()
L'exemple suivant illustre comment utiliser un générateur simple et les objets renvoyés par la méthode next
:
function* gen() { yield 1; yield 2; yield 3; } var g = gen(); // "Generator { }" g.next(); // "Object { value: 1, done: false }" g.next(); // "Object { value: 2, done: false }" g.next(); // "Object { value: 3, done: false }" g.next(); // "Object { value: undefined, done: true }"
Envoyer des valeurs à un générateur
Ici, next
est appelé avec une valeur. On notera ici que le premier appel n'affiche rien car le générateur n'a encore rien généré.
function* gen() { while(true) { var value = yield null; console.log(value); } } var g = gen(); g.next(1); // "{ value: null, done: false }" g.next(2); // "{ value: null, done: false }" // 2
Spécifications
Spécification | État | Commentaires |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'Generator.prototype.next' dans cette spécification. |
Standard | Définition initiale. |
ECMAScript 2017 Draft (ECMA-262) La définition de 'Generator.prototype.next' dans cette spécification. |
Projet |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | ? | 26 (26) | ? | ? | ? |
Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | ? | ? | 26.0 (26) | ? | ? | ? |
Voir aussi
Étiquettes et contributeurs liés au document
Étiquettes :
Contributeurs à cette page :
SphinxKnight
Dernière mise à jour par :
SphinxKnight,