გენერატორები 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-მდე.