| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Generator/next | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 2016.
La mthode next() des instances de Generator retourne un objet avec deux proprits done et value. Vous pouvez galement fournir un paramtre la mthode next pour envoyer une valeur au gnrateur.
next()
next(value)
value FacultatifLa valeur envoyer au gnrateur.
La valeur sera affecte comme rsultat d'une expression yield. Par exemple, dans variable = yield expression, la valeur passe la fonction .next() sera affecte variable.
Un Object possdant deux proprits :
doneUne valeur boolenne :
true si le gnrateur a dpass la fin de son flux de contrle. Dans ce cas, value dfinit la valeur de retour du gnrateur (qui peut tre indfinie).false si le gnrateur peut produire d'autres valeurs.valueToute valeur JavaScript produite ou retourne par le gnrateur.
TypeErrorLeve si le gnrateur est dj en cours d'excution.
next()L'exemple suivant illustre comment utiliser un gnrateur simple et les objets renvoys par la mthode 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 }"
next() avec une listeDans cet exemple, obtenirPage prend une liste et la pagine en segments de taille taillePage. Chaque appel next produira un de ces segments.
function* obtenirPage(list, taillePage = 1) {
for (let index = 0; index < list.length; index += taillePage) {
yield list.slice(index, index + taillePage);
}
}
const list = [1, 2, 3, 4, 5, 6, 7, 8];
const page = obtenirPage(list, 3); // Generator { }
page.next(); // { value: [1, 2, 3], done: false }
page.next(); // { value: [4, 5, 6], done: false }
page.next(); // { value: [7, 8], done: false }
page.next(); // { value: undefined, done: true }
Dans cet exemple, next est appel avec une valeur.
Note : Le premier appel n'affiche rien, car le gnrateur ne produisait rien initialement.
function* gen() {
while (true) {
const value = yield;
console.log(value);
}
}
const g = gen();
g.next(1); // Retourne { value: undefined, done: false }
// Aucun journal cette tape : la premire valeur envoye via `next` est perdue
g.next(2); // Retourne { value: undefined, done: false }
// Journalise 2
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-generator.prototype.next |
function*Cette page a t modifie le 25 fvr. 2026 par les contributeurices du MDN.
GeneratorIteratorObject/FunctionObject.prototype.__defineGetter__()Object.prototype.__defineSetter__()Object.prototype.__lookupGetter__()Object.prototype.__lookupSetter__()Object.prototype.hasOwnProperty()Object.prototype.isPrototypeOf()Object.prototype.propertyIsEnumerable()Object.prototype.toLocaleString()Object.prototype.toString()Object.prototype.valueOf()Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |