Ģeneratori JavaScript
Ir īpašas funkcijas, ar kuru palīdzību var izveidot savus iteratorus. Tādas funkcijas sauc par ģeneratoriem. Šādu funkciju nosaukumiem jāsākas ar zvaigznīti:
function *func() {
}
Ģeneratoru iekšpusē tiek izmantots atslēgvārds
yield, kas norāda to,
ko iterators jāatgriež
nākamajā izsaukumā. Piemēram
padarīsim, lai pirmais
izsaukums atgrieztu 1, otrais - 2,
un trešais - 3:
function *func() {
yield 1;
yield 2;
yield 3;
}
Ģenerators savā rezultātā atgriež iteratoru:
let iter = func();
Pārbaudīsim mūsu iteratora darbību:
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}
Izveidojiet iteratoru, kura katrs izsaukums
atgriezīs skaitļus no 5
līdz 1.