JSFiddle - React, Tailwind, and code Playground

by sivashanmugam kannan

JavaScript

const promise1 = Promise.resolve(43);
const promise2 = 2;
const promise3 = new Promise((resolve, reject) => {
    setTimeout(reject, 100, 'aastha');
})

const promiseAll = function (promises) {
    let totPromises = promises.length;
    let promiseResults = []
    let resolvedPromises = 0;

    return new Promise((resolve, reject) => {
        promises.forEach(promise => {

            if (promise instanceof Promise) {
                promise.then(res => {
                    promiseResults.push(res);
                    resolvedPromises++;
                    if (resolvedPromises == totPromises) {
                        resolve(promiseResults)
                    }
                }).catch((err) => {
                    reject(err);
                })
            } else {
                promiseResults.push(promise);
                resolvedPromises++;
                if (resolvedPromises == totPromises) {
                    resolve(promiseResults)
                }
            }

        })
    })


}

promiseAll([promise1, promise2, promise3]).then(result => {
    console.log(result)
}).catch(err => {
    console.log('ERROR')
    console.log(err)
})