Что выведет код? Запишите строки по порядку, по одной на строку.
В работе: Лента платежей СберБанк Онлайн читает историю постранично через генератор; человек ушёл с экрана — соединение должно закрыться.
Как проверяем
Код не запускаем — предскажите вывод. Пишите строки по порядку, по одной на строку; пробелы по краям не важны. Ответ один на подход: после него показываем разбор.
Источник: на задачах Сбера: лента платежей в СберБанк Онлайн. Условие пересказано своими словами.
Давали на собеседовании?
async function* payments(tag) {console.log(tag, 'открыли соединение');try {yield 'ЖКХ 4 312 ₽';yield 'МТС 650 ₽';yield 'Штраф 500 ₽';} finally {console.log(tag, 'закрыли соединение');}}async function main() {for await (const p of payments('A')) {console.log('A', p);if (p.startsWith('МТС')) break;}try {for await (const p of payments('B')) {console.log('B', p);throw new Error('нет сети');}} catch (e) {console.log('B поймали', e.message);}const it = payments('C');console.log('C', (await it.next()).value);console.log('C return', JSON.stringify(await it.return('стоп')));console.log('C после', JSON.stringify(await it.next()));const d = payments('D');console.log('D return до старта', JSON.stringify(await d.return('рано')));}main().then(() => console.log('готово'));