Generatorer i JavaScript
Der findes specielle funktioner, ved hjælp af hvilke man kan skabe sine egne iteratorer. Sådanne funktioner kaldes generatorer. Navnene på sådanne funktioner skal starte med en stjerne:
function *func() {
}
Inde i generatorer bruges nøgleordet
yield, som angiver,
hvad iteratoren skal returnere ved
det næste kald. Lad os for eksempel
gøre sådan, at det første
kald returnerer 1, det andet - 2,
og det tredje - 3:
function *func() {
yield 1;
yield 2;
yield 3;
}
Generator returnerer med sit resultat en iterator:
let iter = func();
Lad os kontrollere vores iterators funktion:
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}
Skab en iterator, hvor hvert kald
vil returnere tal fra 5
til 1.