Типы и виды функций в JavaScript
Генераторы — это функции, которые можно приостанавливать и возобновлять. Они возвращают специальный объект (Generator), управляемый через yield. Полезны для работы с последовательностями или асинхронными операциями.
Генераторы объявляются с function* и используют ключевое слово yield для пошагового возврата значений.
Пример простого генератора:
function* countToThree() {
yield 1;
yield 2;
yield 3;
}
const generator = countToThree();
console.log(generator.next().value); // 1
console.log(generator.next().value); // 2
console.log(generator.next().value); // 3
console.log(generator.next().done); // trueОсобенности:
Генераторы сохраняют состояние между вызовами next().
yield приостанавливает выполнение, а next() возобновляет.
Можно использовать для обработки данных по частям или совместно с for...of.
Практическое применение:
Ленивые вычисления (генерация значений по запросу).
Асинхронные операции (например, в Redux-Saga).