Generatory w JavaScript
Istnieją specjalne funkcje, za pomocą których można tworzyć własne iteratory. Takie funkcje nazywają się generatory. Nazwy takich funkcji muszą zaczynać się od gwiazdki:
function *func() {
}
Wewnątrz generatorów używa się słowa kluczowego
yield, wskazującego to,
co iterator ma zwrócić przy
następnym wywołaniu. Dla przykładu
zróbmy tak, aby pierwsze
wywołanie zwracało 1, drugie - 2,
a trzecie - 3:
function *func() {
yield 1;
yield 2;
yield 3;
}
Generator swoim wynikiem zwraca iterator:
let iter = func();
Sprawdźmy działanie naszego iteratora:
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}
Stwórz iterator, którego każde wywołanie
będzie zwracać liczby od 5
do 1.