Generatoriai JavaScript'e
Yra specialios funkcijos, kurių pagalba galima kurti savus iteratorius. Tokios funkcijos vadinamos generatoriais. Tokių funkcijų pavadinimai turi prasidėti žvaigždute:
function *func() {
}
Generatoriaus viduje naudojamas raktinis
žodis yield, nurodantis tai,
ką iteratorius turi grąžinti
sekantį kartą. Pavyzdžiui
padarykime, kad pirmas
kartas grąžintų 1, antras - 2,
o trečias - 3:
function *func() {
yield 1;
yield 2;
yield 3;
}
Generatorius savo rezultatu grąžina iteratorius:
let iter = func();
Patikrinkime mūsų iteratoriaus veikimą:
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}
Sukurkite iteratorius, kurio kiekvienas kartas
grąžins skaičius nuo 5
iki 1.