Generator

JavaScript 🟡 Mid

Définition

Fonction spéciale (function*) qui peut se suspendre via yield et reprendre. Retourne un itérateur. Permet la génération paresseuse de séquences potentiellement infinies.

Analogie

Un livre dont tu tournes les pages une par une (yield) : l'histoire ne se déroule que quand tu le demandes.

Exemple de code

function* fibonacci() {
  let [a, b] = [0, 1];
  while (true) {
    yield a;
    [a, b] = [b, a + b];
  }
}
const fib = fibonacci();
fib.next().value; // 0, 1, 1, 2...

Cas d'usage

Séquences paresseuses, pagination, flux de données, implémentation de iterables custom.

#core#ES6#avance

← → au clavier pour passer d'une fiche à l'autre