我正在尝试创建我认为被称为“瀑布”的东西。我想按顺序处理一组异步函数(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 等,然后记录“全部完成”。
也许这真的很明显,但我整个下午都在试图弄清楚这一点。