var arr = [1000, 3000, 500];
function next() {
var d = jQuery.Deferred(),
i = 0,
doNext = function () {
if (i < arr.length) {
console.log(arr[i] + "-------------" + arr[i] * Math.random());
i++;
setTimeout(doNext, arr[i]);
} else {
d.resolve();
}
};
setTimeout(doNext, arr[i]);
return d.promise();
}
next().then(function(){
console.log("OK! its finish.");
});