Sobes.tech
Back to questions
Middle+
8

Что такое генераторы?

Companies where asked
Ifellow

Answer from AI

sobes.tech AI

Генераторы в JavaScript — это функции, которые можно приостанавливать и возобновлять, позволяя последовательно выдавать значения по запросу. Они объявляются с помощью function* и используют ключевое слово yield для возврата значений.

Основные особенности генераторов:

  • Позволяют создавать ленивые последовательности данных.
  • Управляют состоянием функции между вызовами.
  • Могут использоваться для асинхронного программирования (вместе с yield и промисами).

Пример генератора, который выдаёт числа от 1 до 3:

function* numbers() {
  yield 1;
  yield 2;
  yield 3;
}

const gen = numbers();
console.log(gen.next()); // { value: 1, done: false }
console.log(gen.next()); // { value: 2, done: false }
console.log(gen.next()); // { value: 3, done: false }
console.log(gen.next()); // { value: undefined, done: true }

Генераторы удобны для работы с потоками данных, итераторами и асинхронным кодом.