SO - 24931115
JavaScript
var arr = [syncFunction, returnsPromiseAsync, syncFunc2];
var d = $.Deferred().resolve();
while (arr.length > 0) {
d = d.then(arr.shift()); // you don't need the `.done`
}
function syncFunction(){
console.log("Hello World 1");
}
function returnsPromiseAsync(){
var d = $.Deferred();
setTimeout(function(){ console.log("2"); d.resolve(""); },1000);
return d.promise();
}
function syncFunc2(){
console.log("Hello World 3");
}