const doSomething = (ms) => {

Четыре асинхронные операции запускаются сразу; каждая независимо завершается успехом или ошибкой после случайной задержки.

Короткий ответ

Что ответить на собеседовании

Четыре асинхронные операции запускаются сразу; каждая независимо завершается успехом или ошибкой после случайной задержки.

Подробный разбор

Ответ с пояснениями

Условие

const doSomething = (ms) => { return new Promise((resolve, reject) => { setTimeout(() => { if (Math.random() <= 0.5) { reject("error"); } else { resolve(ms); } }, ms); }); };

const getDelay = () => { let rand = 1000 + Math.random() * 2000; return Math.floor(rand); };

const p1 = doSomething(getDelay()); const p2 = doSomething(getDelay()); const p3 = doSomething(getDelay()); const p4 = doSomething(getDelay());

Ответ

Четыре асинхронные операции запускаются сразу; каждая независимо завершается успехом или ошибкой после случайной задержки.

getDelay возвращает целое от 1000 до 2999 мс, но таймер может выполниться позже. Без обработчиков отклонения возможны unhandled rejections. Для сбора всех исходов подходит Promise.allSettled([p1, p2, p3, p4]); результат сохраняет входной порядок, а не порядок завершения.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее