JSFiddle - React, Tailwind, and code Playground

by Andi Nugroho Dirgantara

JavaScript

var p1 = new Promise(function (resolve, reject) {
    window.setTimeout(

    function () {
        resolve('res called from p1')
    }, 1000);
});


var p2 = new Promise(function (resolve, reject) {
    window.setTimeout(

    function () {
        resolve('res called from p2')
    }, 1000);
});

function chainPromises() {
    console.log('-------------------\n');
    console.log('your chain promise');
    return p1.then(function (val) {
        console.log("p1");
        console.log(val);
        return p2.then(function (val) {
            console.log("p2");
            console.log(val);
            return val;
        });
    });
}

function chainThen() {
    console.log('-------------------\n');
    console.log('chain then');
    return p1.then(function (val) {
        console.log("p1");
        console.log(val);
        return p2
    })
        .then(function (val) {
        console.log("p2");
        console.log(val);
        console.log('chain then done');
    });
}

function promiseAll() {
    console.log('-------------------\n');
    console.log('promise all');
    return Promise.all([p1, p2])
        .then(function (vals) {
        console.log('p1 return value = ' + vals[0]);
        console.log('p2 return value = ' + vals[1]);
        console.log('done');
    });
}

chainPromises().then(function (val) {
    console.log(val);
})
    .then(function (val) {
    return chainThen();
})
    .then(function () {
    promiseAll();
});;