Generator
JavaScript 🟡 MidDé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.