frontend-challenges icon indicating copy to clipboard operation
frontend-challenges copied to clipboard

35 - Promise.all - javascript

Open jsartisan opened this issue 1 year ago • 0 comments

index.js

export function promiseAll(promises) {
  return new Promise((resolve, reject) => {
    let results = [];
    let completedPromises = 0;

    if (promises.length === 0) {
      resolve([]);

      return;
    }

    promises.forEach((promise, index) => {
      Promise.resolve(promise)
        .then((result) => {
          results[index] = result;
          completedPromises++;

          if (completedPromises === promises.length) {
            resolve(results);
          }
        })
        .catch((error) => {
          reject(error);
        });
    });
  });
}

jsartisan avatar Jul 26 '24 07:07 jsartisan