我正在尝试创建一个被称为“瀑布流”的东西。我想顺序处理一系列异步函数(jQuery承诺)。
这里有一个人为制造的例子:
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等等,最后记录"all done"。
也许这很显然,但是我整个下午都在尝试弄清楚这个问题。