JSFiddle - React, Tailwind, and code Playground

by yeti777937

JavaScript

let promise1 = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve("1");
  }, 4000)
})
let promise2 = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve("2");
  }, 2000)
})

let promiseArray = [promise1, promise2];

promiseAll = (promiseArray) => {
  let counter = promiseArray.length;
  let resultArray = [];
  return new Promise((resolve, reject) => {
    (promiseArray || []).forEach((item, index) => {
      ((index) => {
        item.then((value) => {
          resultArray[index] = value;
          counter--;
          if (!counter) {
            resolve(resultArray);
          }
        }).catch((err) => {
          console.log(err);
        })
      })(index)
    })
  })

}

promiseAll(promiseArray).then((value) => {
  console.log(value);
})