Что выведет код Senior Итераторы и генераторы обновлено
for await
Вопрос
Что выведет код? По строке на каждый вывод.
async function* gen() {
yield 1;
yield Promise.resolve(2);
}
(async () => {
for await (const v of gen()) console.log(v);
console.log('готово');
})();
console.log('синхронно');
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: синхронно, 1, 2, готово. Почему так Асинхронные итераторы позволяют потреблять поток данных по мере поступления - постраничные запросы, чтение потока. for await ждёт каждое значение, поэтому цикл идёт последовательно.
Что выведет
синхронно
1
2
готово
Разбор
Почему так
Асинхронные итераторы позволяют потреблять поток данных по мере поступления - постраничные запросы, чтение потока. for await ждёт каждое значение, поэтому цикл идёт последовательно.
Вывод
синхронно
1
2
готово
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.