Генераторы в 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
.