JavaScript-de generatorlar
Öz iteratorylaryňyzy döretmek üçin ulanyp bolýan aýratyn funksiýalar bar. Şeýle funksiýalar generatorlar diýilýär. Şeýle funksiýalaryň adalary ýyldyz bilen başlamaly:
function *func() {
}
Generatorlaryň içinde yield açar sözi ulanylýar,
iteratoryň indiki çagyryşynda näme
gaýtarmalydygyny görkezýär. Mysal üçin
ilkinji çagyryş 1, ikinji - 2,
üçünji - 3 gaýtarsyn:
function *func() {
yield 1;
yield 2;
yield 3;
}
Generator netijesinde iterator gaýtarýar:
let iter = func();
Geliň iteratorymyzyň işini barlaýaly:
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}
Her çagyryşy 5
-dan 1-a çenli sanlary gaýtarýan
iterator dörediň.