Generaatorid JavaScriptis
On olemas spetsiaalsed funktsioonid, mille abil saab luua oma iteraatoreid. Selliseid funktsioone nimetatakse generaatoriteks. Selliste funktsioonide nimed peavad algama tärniga:
function *func() {
}
Generaatorite sees kasutatakse võtmesõna
yield, mis näitab seda,
mida iteratior peaks tagastama
järgmisel kutsul. Näiteks
teeme nii, et esimene
kutse tagastab 1,
teine - 2,
ja kolmas - 3:
function *func() {
yield 1;
yield 2;
yield 3;
}
Generaator tagastab oma tulemusena iteraatori:
let iter = func();
Kontrollime meie iteratiivi tööd:
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}
Looge iteraator, mille iga kutse
tagastab numbrid 5
kuni 1.