Generátory v JavaScripte
Existujú špeciálne funkcie, pomocou ktorých možno vytvárať vlastné iterátory. Takéto funkcie sa nazývajú generátory. Mená týchto funkcií musia začínať hviezdičkou:
function *func() {
}
Vo vnútri generátorov sa používa kľúčové
slovo yield, ktoré určuje,
čo má iterátor vrátiť pri
ďalšom volaní. Pre príklad
urobme tak, aby prvé volanie
vrátilo 1, druhé - 2,
a tretie - 3:
function *func() {
yield 1;
yield 2;
yield 3;
}
Generátor svojím výsledkom vracia iterátor:
let iter = func();
Overme si činnosť nášho iterátora:
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}
Vytvorte iterátor, ktorého každé volanie
vráti čísla od 5
do 1.