Generatori in JavaScript
Esistono funzioni speciali, con l'aiuto delle quali è possibile creare i propri iteratori. Queste funzioni sono chiamate generatori. I nomi di queste funzioni devono iniziare con un asterisco:
function *func() {
}
All'interno dei generatori viene utilizzata la parola chiave
yield, che indica ciò che
l'iteratore dovrebbe restituire
alla chiamata successiva. Ad esempio,
facciamo in modo che la prima
chiamata restituisca 1, la seconda - 2,
e la terza - 3:
function *func() {
yield 1;
yield 2;
yield 3;
}
Il generatore restituisce come risultato un iteratore:
let iter = func();
Controlliamo il funzionamento del nostro iteratore:
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}
Create un iteratore, ogni chiamata del quale
restituirà numeri da 5
a 1.