[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Generator/next [Back]  [Original]

Generator.prototype.next() - JavaScript | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

Generator.prototype.next()

Baseline Weitgehend verfgbar

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.

In diesem Artikel

Syntax

js
next()
next(value)

Parameter

value Optional

Der 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.

Rckgabewert

Ein Object mit zwei Eigenschaften:

done

Ein 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.
value

Jeder JavaScript-Wert, der vom Generator erzeugt oder zurckgegeben wird.

Ausnahmen

TypeError

Wird ausgelst, wenn der Generator bereits luft.

Beispiele

Nutzung von next()

Das folgende Beispiel zeigt einen Generator und das Objekt, das die next-Methode zurckgibt:

js
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 }

Nutzung von next() mit einer Liste

In diesem Beispiel nimmt getPage eine Liste und "paginates" sie in Teile der Gre pageSize. Jeder Aufruf von next liefert ein solches Teilstck.

js
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 }

Senden von Werten an den Generator

In diesem Beispiel wird next mit einem Wert aufgerufen.

Hinweis: Der erste Aufruf protokolliert nichts, da der Generator anfangs nichts hervorbrachte.

js
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

Spezifikationen

Spezifikation
ECMAScript 2027 LanguageSpecification
# sec-generator.prototype.next

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page