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

←→
↑
en ru