0Pricing
JavaScript Academy · Lektion

Generatorfunktionen, yield und kleine Pipelines

Generatorfunktionen mit function* schreiben, mit yield Werte verzögert erzeugen, sie mit for...of oder next() ausführen und kleine Pipelines zusammensetzen

Generatorfunktionen, yield und kleine Pipelines ist eine kostenlose JavaScript Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des JavaScript Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der JavaScript Academy-Kurs umfasst insgesamt 3 Lektionen.

Warum Generatoren?

Ziel: Werte mit Generatoren verzögert erzeugen.

  • function* definiert einen Generator
  • yield erzeugt Werte Schritt für Schritt
  • Mit for...of oder next() verarbeiten
  • Kleine Pipelines (ähnlich wie bei map) kombinieren
Generatorfunktionen, yield und kleine Pipelines — Illustration 1

function* und yield

Generatoren verwenden function* und yield. Die Iteration wird ab dem letzten yield fortgesetzt.

// A basic generator that yields 1..n lazily
function* countTo(n) {
  for (let i = 1; i <= n; i = i + 1) {
    yield i; // pause here and give i to the caller
  }
}

for (const x of countTo(3)) {
  console.log("value:", x);
}
Generatorfunktionen, yield und kleine Pipelines — Illustration 2

Manuelles next()

Mit next() gehen Sie die yield-Werte durch. Am Ende wird done: true zurückgegeben.

// You can also drive a generator manually with next()
const it = countTo(2);

console.log(it.next()); // { value: 1, done: false }
console.log(it.next()); // { value: 2, done: false }
console.log(it.next()); // { value: undefined, done: true }
Generatorfunktionen, yield und kleine Pipelines — Illustration 3

Gerade Zahlen verzögert erzeugen

Generatoren eignen sich hervorragend für einfache Datenströme wie gerade Zahlen, ohne vorher große Arrays aufzubauen.

// Yield even numbers up to n (inclusive)
function* evensUpTo(n) {
  for (let i = 0; i <= n; i = i + 1) {
    if (i % 2 === 0) {
      yield i;
    }
  }
}

console.log("evens 0..6:", [...evensUpTo(6)]);
Generatorfunktionen, yield und kleine Pipelines — Illustration 4

Lazy-Map-Pipeline

Setzen Sie kleine Schritte zusammen: Übergeben Sie einen Generator an einen anderen, um Lazy-Pipelines aufzubauen.

// map() as a generator: transform values lazily
function* map(iterable, fn) {
  for (const v of iterable) {
    yield fn(v);
  }
}

const doubled = map(countTo(4), function (x) { return x * 2; });
console.log("doubled:", [...doubled]);
Generatorfunktionen, yield und kleine Pipelines — Illustration 5

Gute Gewohnheiten

Tipps:

  • Rufen Sie die Generatorfunktion auf, um einen Iterator zu erhalten. Sie wird nicht sofort vollständig ausgeführt.
  • yield pausiert die Ausführung; return beendet die Sequenz.
  • Wenn ein Generator fertig ist, ist er aufgebraucht. Rufen Sie die Funktion erneut auf, um einen neuen Iterator zu erhalten.
Generatorfunktionen, yield und kleine Pipelines — Illustration 6

Quiz zum Rückgabewert eines Generators

Schnelltest: Was gibt eine Generatorfunktion zurück?

Generatorfunktionen, yield und kleine Pipelines — Illustration 7

Zusammenfassung

Zusammenfassung: Definieren Sie function*, erzeugen Sie Werte verzögert mit yield, verarbeiten Sie sie mit for...of oder next() und setzen Sie kleine Generator-Pipelines für einfache Transformationen zusammen.

Generatorfunktionen, yield und kleine Pipelines — Illustration 8

Häufig gestellte Fragen

Ist die Lektion „Generatorfunktionen, yield und kleine Pipelines“ kostenlos?

Ja — der vollständige Text von „Generatorfunktionen, yield und kleine Pipelines“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des JavaScript Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der JavaScript Academy-Kurs umfasst insgesamt 3 Lektionen.

Was lerne ich in „Generatorfunktionen, yield und kleine Pipelines“?

Generatorfunktionen mit function* schreiben, mit yield Werte verzögert erzeugen, sie mit for...of oder next() ausführen und kleine Pipelines zusammensetzen Du übst JavaScript Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um JavaScript Academy zu starten?

Keine Vorkenntnisse erforderlich. JavaScript Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 3.

Wie lange dauert die Lektion „Generatorfunktionen, yield und kleine Pipelines“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser JavaScript Academy-Lektion Code schreiben und ausführen?

Ja. Jede JavaScript Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Iterable-Protokoll und for...of
  2. Generatorfunktionen, yield und kleine Pipelines
  3. Asynchrone Iteratoren – for await...of und asynchrone Generatoren
← Zurück zu JavaScript Academy