Generatorer i JavaScript
Det finns speciella funktioner, med vilka man kan skapa sina egna iteratorer. Sådana funktioner kallas generatorer. Namnen på sådana funktioner måste börja med en asterisk:
function *func() {
}
Inuti generatorer används nyckelordet
yield, som indikerar vad
iteratorn ska returnera vid
nästa anrop. Låt oss som exempel
göra så att det första
anropet returnerar 1, det andra - 2,
och det tredje - 3:
function *func() {
yield 1;
yield 2;
yield 3;
}
Generatorn returnerar som sitt resultat en iterator:
let iter = func();
Låt oss kontrollera vår 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}
Skapa en iterator, vars varje anrop
kommer att returnera tal från 5
till 1.