Генераторҳо дар JavaScript
Функсияҳои махсусе вуҷуд доранд, ки бо ёрии онҳо шумо метавонед итераторҳои худро созед. Чунин функсияҳо генератор номида мешаванд. Номҳои чунин функсияҳо бояд аз ситорача оғоз шаванд:
function *func() {
}
Дар дохили генераторҳо калимаи калидӣ
yield истифода мешавад, ки чизеро, ки
итератор дар даъвати
оянда бояд баргардонад, нишон медиҳад. Барои мисол
биёед то ҳамин тавр кунем, ки даъвати аввал
1, дуввум - 2,
ва сеюм - 3 баргардонад:
function *func() {
yield 1;
yield 2;
yield 3;
}
Генератор бо натиҷаи худ итератор бармегардонад:
let iter = func();
Биёед кори итератори худро санҷем:
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}
Итераторе созед, ки ҳар даъвати он
рақамҳо аз 5
то 1 баргардонад.