Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: функция

Как работают генераторы в JS?

Типы и виды функций в 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).

Уровень

  • Рейтинг:

    3

  • Сложность:

    6

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#функция

Подпишись на React Developer в телеграм