Generaattorit JavaScriptissä
On olemassa erityisiä funktioita, joiden avulla voit luoda omia iteraattoreita. Tällaisia funktioita kutsutaan generaattoreiksi. Tällaisten funktioiden nimen tulee alkaa tähdellä:
function *func() {
}
Generaattoreiden sisällä käytetään avainsanaa
yield, joka osoittaa,
mikä iteraattorin tulisi palauttaa
seuraavalla kutsulla. Esimerkkinä
tehdään niin, että ensimmäinen
kutsu palauttaa 1, toinen - 2,
ja kolmas - 3:
function *func() {
yield 1;
yield 2;
yield 3;
}
Generaattori palauttaa tuloksenaan iteraattorin:
let iter = func();
Kokeillaan meidän iteraattorimme toimintaa:
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}
Luo iteraattori, jonka jokainen kutsu
palauttaa numerot 5
sta 1:een.