Что выведет код? Запишите строки по порядку, по одной на строку. Таймеры с одинаковой задержкой, поставленные в одном синхронном блоке, срабатывают в порядке постановки.
В работе: Пачка платёжных поручений: почему «все отправлены» печатается раньше ответов.
Как проверяем
Код не запускаем — предскажите вывод. Пишите строки по порядку, по одной на строку; пробелы по краям не важны. Ответ один на подход: после него показываем разбор.
Источник: на задачах Т‑Банка: отправка платёжных поручений пачкой. Условие пересказано своими словами.
Давали на собеседовании?
const delays = [300, 100, 200];const send = (ms) => new Promise((resolve) => setTimeout(() => {console.log('ответ', ms);resolve(ms);}, ms));async function main() {delays.forEach(async (ms) => {await send(ms);console.log('forEach', ms);});console.log('после forEach');for (const ms of delays) {await send(ms);}console.log('после for...of');const all = await Promise.all(delays.map(send));console.log('all', all.join(','));}main();