Skip to content

Instantly share code, notes, and snippets.

@oleggrishechkin
Last active May 27, 2021 17:29
Show Gist options
  • Save oleggrishechkin/28bfbf18c71e59a07f577d49b9437a2c to your computer and use it in GitHub Desktop.
Save oleggrishechkin/28bfbf18c71e59a07f577d49b9437a2c to your computer and use it in GitHub Desktop.

шаблон

// написать функцию, которая ждет промисы последовательно и возвращает промис с результатом всех промисов

const promiseChain = (promises: Promise<any>[]): Promise<any[]> => {
  // код
};

const results = promiseChain([fetch('url1'), fetch('url2')]);

console.log(results); // [результат запроса fetch('url1'), результат запроса fetch('url2')];

решение

const promiseChain = (promises: Promise<any>[]): Promise<any[]> =>
    promises.reduce(
        (resultPromise, promise) =>
            resultPromise.then((result) =>
                promise.then((promiseRes) => result.concat(promiseRes)).catch((error) => result.concat(error))
            ),
        Promise.resolve([])
    );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment