JavaScript-də Generatorlar
Öz iteratorlarınızı yaratmaq üçün istifadə edilə bilən xüsusi funksiyalar var. Belə funksiyalar generatorlar adlanır. Belə funksiyaların adları ulduz işarəsi ilə başlamalıdır:
function *func() {
}
Generatorların daxilində yield açar sözü istifadə olunur,
bu, iteratorun növbəti çağırışda
nə qaytarmalı olduğunu göstərir.
Nümunə üçün
gəlin birinci çağırışın 1,
ikinci - 2,
üçüncü - 3 qaytarmasını təmin edək:
function *func() {
yield 1;
yield 2;
yield 3;
}
Generator öz nəticəsi kimi iterator qaytarır:
let iter = func();
Gəlin iteratorumuzun işini yoxlayaq:
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}
Hər çağırışı 5-dən
1-ə qədər rəqəmlər qaytaran
iterator yaradın.