| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Generator/next | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit September 2016 browserbergreifend verfgbar.
Die next() Methode von Generator-Instanzen gibt ein
Objekt mit zwei Eigenschaften done und value zurck. Sie knnen auch
einen Parameter an die next-Methode bergeben, um dem Generator einen Wert zu senden.
next()
next(value)
value OptionalDer Wert, der an den Generator gesendet wird.
Der Wert wird als Resultat eines yield-Ausdrucks zugewiesen. Zum
Beispiel, in variable = yield expression, wird der Wert,
der an die .next() Funktion bergeben wird, der
variable zugewiesen.
Ein Object mit zwei Eigenschaften:
doneEin boolean Wert:
true, wenn der Generator das Ende seines Kontrollflusses berschritten hat. In diesem Fall gibt value den Rckgabewert des Generators an (der mglicherweise undefined ist).false, wenn der Generator noch weitere Werte erzeugen kann.valueJeder JavaScript-Wert, der vom Generator erzeugt oder zurckgegeben wird.
TypeErrorWird ausgelst, wenn der Generator bereits luft.
Das folgende Beispiel zeigt einen Generator und das Objekt, das die
next-Methode zurckgibt:
function* gen() {
yield 1;
yield 2;
yield 3;
}
const g = gen(); // Generator { }
g.next(); // { value: 1, done: false }
g.next(); // { value: 2, done: false }
g.next(); // { value: 3, done: false }
g.next(); // { value: undefined, done: true }
In diesem Beispiel nimmt getPage eine Liste und "paginates" sie in Teile der Gre pageSize. Jeder Aufruf von next liefert ein solches Teilstck.
function* getPage(list, pageSize = 1) {
for (let index = 0; index < list.length; index += pageSize) {
yield list.slice(index, index + pageSize);
}
}
const list = [1, 2, 3, 4, 5, 6, 7, 8];
const page = getPage(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 }
In diesem Beispiel wird next mit einem Wert aufgerufen.
Hinweis: Der erste Aufruf protokolliert nichts, da der Generator anfangs nichts hervorbrachte.
function* gen() {
while (true) {
const value = yield;
console.log(value);
}
}
const g = gen();
g.next(1); // Returns { value: undefined, done: false }
// No log at this step: the first value sent through `next` is lost
g.next(2); // Returns { value: undefined, done: false }
// Logs 2
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-generator.prototype.next |
function*GeneratorIteratorObject/FunctionDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |