@Mulch

Как последовательно вызвать асинхронные функции и записать результат в массив?

Здравствуйте.

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

Пример:
const first = () =>
  new Promise((resolve) => setTimeout(() => resolve(300)), 300);

const second= () =>
  new Promise((resolve) => setTimeout(() => resolve(200)), 200);

const third = () =>
  new Promise((resolve) => setTimeout(() => resolve(100)), 100);

promises([first, second, third]);
// Выполнит resolve(300) через 300 мс, потом resolve(200) через 200 мс, потом resolve(100) через 100 мс
// [300, 200, 100]


Подскажите пожалуйста, куда копать?
  • Вопрос задан
  • 138 просмотров
Пригласить эксперта
Ответы на вопрос 2
bootd
@bootd
Гугли и ты откроешь врата знаний!
Promise.all
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
async function chain(arr) {
  const result = [];

  for (const item of arr) {
    result.push(await item(result[result.length - 1]));
  }

  return result;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы