--- title: Generator.prototype.next() slug: Web/JavaScript/Reference/Global_Objects/Generator/next tags: - ECMAScript 2015 - Generator - JavaScript - Method - Prototype - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Generator/next ---
Die next() Methode gibt ein Objekt mit den zwei Eigenschaften done und value zurück. Man kann der next Methode auch einen Wert für den Generator übergeben.
gen.next(value)
valueEin Objekt mit zwei Eigenschaften:
done (boolean)
true, wenn der Iterator am Ende der Sequenz angekommen ist. In diesem Fall ist value, der Rückgabewert des Iterators, optional spezifiziert.false, wenn der Iterator einen weiteren Wert aus der Sequenz produzieren kann. Das ist gleichbedeutend damit, dass die done Eigenschaft nicht spezifiziert ist.value - Ein JavaScript Wert, der von einem Iterator zurückgegeben wird. Kann weggelassen werden, wenn done true ist.next()Das folgende Beispiel zeigt einen einfachen Generator und das Objekt, welches die next Methode zurück gibt:
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 }"
Im diesem Beispiel wird next mit einem Wert aufgerufen. Zu beachten ist, dass der Generator beim ersten aufruf nicht ausgibt, weil der Generator keinen initialen Wert generiert.
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 }"
| Spezifikation | Status | Kommentar |
|---|---|---|
| {{SpecName('ES2015', '#sec-generator.prototype.next', 'Generator.prototype.next')}} | {{Spec2('ES2015')}} | Initiale Definition. |
| {{SpecName('ESDraft', '#sec-generator.prototype.next', 'Generator.prototype.next')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.builtins.Generator.next")}}