SO - 24931115
JavaScript
var arr = ["file1", "file2", "file3"];
var d = $.Deferred().resolve();
d.then(function next() {
var promise = uploadFile(arr.shift());
return arr.length === 0 ? promise : promise.then(next);
});
function uploadFile(file){
var d = $.Deferred();
setTimeout(function(){ console.log("Uploading file:"+file); d.resolve(""); },1000);
return d.promise();
}