Quick actions

cmd+k|ctrl+k

Navigation

Languages

Queue Processing

Snippet info

Language

JavaScript

Visibility

public

Author

horngyih

Created

2017-09-07T03:08:13Z

Updated

2017-09-07T03:08:13Z

var queue = [];
queue.push(1);
queue.push("A");
queue.push(2);
queue.push(3);

function processQueue(){
    if( queue && queue.length ){
        new Promise(function(resolve, reject){
            var job = queue.pop();
            setTimeout( function(){ 
                if( typeof job === "number" ){
                    console.log( new Date(), " Processed : ", job ); 
                    resolve(); 
                } else {
                    reject();
                }
            }, 1000 );
        }).then(processQueue, function(){queue.length=0});
    }
}

processQueue();
INFO