Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Eingebaute Standardobjekte
  5. Generator
  6. next()

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

View in EnglishAlways switch to English

Generator.prototype.next()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨September 2016⁩.

Dienext() Methode vonGenerator-Instanzen gibt einObjekt mit zwei Eigenschaftendone undvalue zurück. Sie können aucheinen Parameter an dienext-Methode übergeben, um dem Generator einen Wert zu senden.

Syntax

js
next()next(value)

Parameter

valueOptional

Der Wert, der an den Generator gesendet wird.

Der Wert wird als Resultat einesyield-Ausdrucks zugewiesen. ZumBeispiel, invariable = yield expression, wird der Wert,der an die.next() Funktion übergeben wird, dervariable zugewiesen.

Rückgabewert

EinObject mit zwei Eigenschaften:

done

Ein boolean Wert:

  • true, wenn der Generator das Ende seines Kontrollflusses überschritten hat. In diesem Fall gibtvalue denRückgabewert des Generators an (der möglicherweise undefined ist).
  • false, wenn der Generator noch weitere Werte erzeugen kann.
value

Jeder JavaScript-Wert, der vom Generator erzeugt oder zurückgegeben wird.

Ausnahmen

TypeError

Wird ausgelöst, wenn der Generator bereits läuft.

Beispiele

Nutzung von next()

Das folgende Beispiel zeigt einen Generator und das Objekt, das dienext-Methode zurückgibt:

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 nimmtgetPage eine Liste und "paginates" sie in Teile der GrößepageSize. Jeder Aufruf vonnext liefert ein solches Teilstück.

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 wirdnext 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 lostg.next(2); // Returns { value: undefined, done: false }// Logs 2

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-generator.prototype.next

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp