Встречается на собеседованиях • сегодня

Почему генераторы позволяют писать асинхронный код

Генераторы (функции с function*) позволяют писать асинхронный код в синхронном стиле благодаря возможности приостанавливать и возобновлять выполнение через yield. Это особенно полезно с yield промисов, где можно дождаться их разрешения перед продолжением.

Пример с async/await-подобным поведением:

javascript
function* asyncGenerator() {
  const data = yield fetch('https://api.example.com/data');
  console.log(data); // обработанные данные
}

const gen = asyncGenerator();
const promise = gen.next().value;
promise.then(response => response.json())
.then(data => gen.next(data));

text

Ключевые преимущества:
1. Пауза выполнения без блокировки основного потока
2. Читаемость кода (похоже на синхронный стиль)
3. Возможность ручного управления потоком выполнения

Хотя сегодня чаще используют async/await, генераторы были важным шагом в эволюции асинхронного JS и до сих пор применяются в Redux-Saga и подобных библиотеках.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы