Generatorer i JavaScript
Det finnes spesielle funksjoner, ved hjelp av som du kan opprette dine egne iteratorer. Slike funksjoner kalles generatorer. Navnene på slike funksjoner må starte med en stjerne:
function *func() {
}
Inne i generatorer brukes nøkkelordet
yield, som indikerer hva
iteratoren skal returnere på
det neste kallet. La oss for eksempel
gjøre slik at det første
kallet returnerer 1, det andre - 2,
og det tredje - 3:
function *func() {
yield 1;
yield 2;
yield 3;
}
Generator returnerer ved sitt resultat en iterator:
let iter = func();
La oss sjekke hvordan iteratoren vår fungerer:
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}
Opprett en iterator, hvor hvert kall
vil returnere tall fra 5
til 1.