Назад к задачам
Junior
5

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

Компании, где спрашивали:

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

Даны три функции. Асинхронные функции add1() и add2() делают операцию сложения по разному. Определить за какое минимальное время выполнятся функции add1() и add2()

function resolveAfter2Seconds(x) {
  return bew Promise((resolve) => {
    setTimeout(() => {
      resolve(x);
    }, 2000);
  });
}

async function add1(x) {
  const a = await resolveAfter2Seconds(20);
  const b = await resolveAfter2Seconds(30);
  return x + a + b;
}

async function add2(x) {
  const promise_a = resolveAfter2Seconds(20);
  const promise_b = resolveAfter2Seconds(30);
  return x + (await promise_a) + (await promise_b);
}

add1(10).then(console.log);
add2(20).then(console.log);