Я пытаюсь создать то, что, на мой взгляд, называется "Водопад". Я хочу последовательно обрабатывать массив асинхронных функций (jQuery promises).
Вот надуманный пример:
function doTask(taskNum){
var dfd = $.Deferred(),
time = Math.floor(Math.random()*3000);
setTimeout(function(){
console.log(taskNum);
dfd.resolve();
},time)
return dfd.promise();
}
var tasks = [1,2,3];
for (var i = 0; i < tasks.length; i++){
doTask(tasks[i]);
}
console.log("all done");
Я хотел бы, чтобы он выполнил задачу в том порядке, в котором они выполняются (присутствует в массиве). Итак, в этом примере я хочу, чтобы он выполнял задачу 1 и дождался ее разрешения, тогда задача 2 дождалась ее разрешения, выполнила задачу 3 и т.д. И журнал "все сделано".
Возможно, это действительно очевидно, но я пытался понять это во второй половине дня.