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();