Generátory v JavaScriptu
Existují speciální funkce, pomocí kterých lze vytvářet vlastní iterátory. Takové funkce se nazývají generátory. Jména těchto funkcí musí začínat hvězdičkou:
function *func() {
}
Uvnitř generátorů se používá klíčové
slovo yield, které určuje,
co má iterátor vrátit při
dalším volání. Jako příklad
si udělejme, aby první
volání vrátilo 1, druhé - 2,
a třetí - 3:
function *func() {
yield 1;
yield 2;
yield 3;
}
Generátor svým výsledkem vrací iterátor:
let iter = func();
Pojďme zkontrolovat práci našeho iterátoru:
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}
Vytvořte iterátor, jehož každé volání
bude vracet čísla od 5
do 1.