Generator
JavaScript 🟡 MidDefinition
Fonction speciale (function*) qui peut se suspendre via yield et reprendre. Retourne un iterateur. Permet la generation paresseuse de sequences potentiellement infinies.
Analogie
Un livre dont tu tournes les pages une par une (yield) : l'histoire ne se deroule 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
Sequences paresseuses, pagination, flux de donnees, implementation de iterables custom.