Quick actions

cmd+k|ctrl+k

Navigation

Languages

Promise Chains, Promise All and Async-Await

Snippet info

Language

JavaScript

Visibility

public

Author

horngyih

Created

2017-11-09T10:31:02Z

Updated

2017-11-09T10:31:02Z

function pushData(data){
    return new Promise(function(resolve,reject){
        console.time(data);
        setTimeout(function(){
            console.log(data);
            console.timeEnd(data);
            resolve("Received " + data);
        }, 1000 + ( Math.random() * 1000 )  );
    });
}

async function saveDatasAsync(){
    var msg1 = await pushData("DataAsync1");
    var msg2 = await pushData("DataAsync2");
    var msg3 = await pushData("DataAsync3");
    return [ msg1, msg2, msg3 ];
}

function saveDatasPromiseAll(){
    return Promise.all( [pushData("Data1"), pushData("Data2"), pushData("Data3") ]);
}

function saveDatasPromiseChain(){
    return new Promise(function(resolve,reject){
        
    });
}

function runPromiseAll(){
    return new Promise(function(resolve, reject){
        var label = "PromiseAllRun";
        console.log( label );
        console.time(label);
        saveDatasPromiseAll()
        .then(function(datas){
            console.log(datas);
            console.timeEnd(label);
            console.log( "END ", label );
            resolve();
        });
    });
}

function runPromiseAsync(){
    return new Promise(async function(resolve,reject){
        var label = "AsyncRun";
        console.log( label );
        console.time(label);
        var result = await saveDatasAsync();
        console.timeEnd(label);
        console.log( result );
        console.log( "END ", label );
        resolve();
    });
}

function run(){
    runPromiseAll().then(runPromiseAsync);
}

run();
INFO