Generatoare în JavaScript
Există funcții speciale, cu ajutorul cărora puteți crea proprii iteratori. Astfel de funcții se numesc generatoare. Numele acestor funcții trebuie să înceapă cu un asterisc:
function *func() {
}
În interiorul generatoarelor se utilizează cuvântul cheie
yield, care indică ceea ce
iteratorul ar trebui să returneze la
următorul apel. De exemplu,
haideți să facem ca prima
apelare să returneze 1, a doua - 2,
iar a treia - 3:
function *func() {
yield 1;
yield 2;
yield 3;
}
Generatorul returnează ca rezultat un iterator:
let iter = func();
Haideți să verificăm funcționarea iteratorului nostru:
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}
Creați un iterator, fiecare apel al căruia
va returna numere de la 5
la 1.