Generatoren in JavaScript
Er zijn speciale functies waarmee je je eigen iterators kunt maken. Zulke functies worden generatoren genoemd. De namen van zulke functies moeten beginnen met een sterretje:
function *func() {
}
Binnen generatoren wordt het sleutelwoord
yield gebruikt, dat aangeeft
wat de iterator moet teruggeven bij
de volgende aanroep. Laten we
als voorbeeld zorgen dat de eerste
aanroep 1 teruggeeft, de tweede - 2,
en de derde - 3:
function *func() {
yield 1;
yield 2;
yield 3;
}
Een generator retourneert als resultaat een iterator:
let iter = func();
Laten we de werking van onze iterator testen:
console.log(iter.next()); // {value: 1, done: false}
console.log(iter.next()); // {value: 2, done: false}
console.log(iter.next()); // {value: 3, done: false}
console.log(iter.next()); // {value: undefined, done: true}
Maak een iterator aan, waarvan elke aanroep
getallen van 5
tot 1 zal teruggeven.