Назад к задачам
Junior — Senior
12

Организация последовательного вызова асинхронных функций

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Необходимо вызвать функции так, чтобы в консоли последовательно отобразились числа 1 2 3.


const getRandomArbitrary = (min, max) =>
    Math.floor(Math.random() * (max - min) + min);

const first = () => {
    return new Promise((resolve) => {
        setTimeout(() => console.log("1"), getRandomArbitrary(0, 3) * 1000);
    });
};

const second = () => {
    return new Promise((resolve) => {
        setTimeout(() => console.log("2"), getRandomArbitrary(0, 3) * 1000);
    });
};

const third = () => {
    new Promise((resolve) => {
        setTimeout(() => console.log("3"), getRandomArbitrary(0, 3) * 1000);
    });
};

Подумайте, какие подходы (callback‑цепочки, async/await, Promise‑композиция) позволят гарантировать порядок вывода независимо от случайных задержек.