Generator.prototype.next()
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
js
gen.next(valeur)
Paramètres
valeur-
La valeur à envoyer au générateur. La valeur sera affectée comme résultat d'une expression
yield. Autrement dit, lorsque le générateur contient une expression de la formevariable = yield expression, c'est l'argumentvaleurqui sera affecté àvariable.
Valeur de retour
Un Object possédant deux propriétés :
done(un booléen)- vaut
truesi l'itérateur a atteint la fin de la série sur laquelle il itère. Dans ce cas, la propriétévaluedéfinit la valeur de retour pour l'itérateur. - vaut
falsesi l'itérateur a pu fournir la prochaine valeur de la série. C'est la valeur par défaut si la propriétédonen'est pas définie.
- vaut
value- n'importe quelle valeur JavaScript renvoyée par l'itérateur. Cette propriété peut être absente lorsquedonevauttrue.
Exemples
Utiliser next()
L'exemple suivant illustre comment utiliser un générateur simple et les objets renvoyés par la méthode next :
js
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é.
js
function* gen() {
while(true) {
var value = yield null;
console.log(value);
}
}
var g = gen();
g.next(1);
// "{ value: null, done: false }"
g.next(2);
// 2
// "{ value: null, done: false }"
Spécifications
| Specification |
|---|
| ECMAScript Language Specification # sec-generator.prototype.next |
Compatibilité des navigateurs
BCD tables only load in the browser