0
var array = [DefferdObj, DefferdObj, DefferdObj, DefferdObj];

array[0].then
array[1].then
array[2].then
  ・
  ・
  ・

我想异步执行 DeferedObj。这个数组可以动态改变。

4

1 回答 1

0

如果您希望在它们全部完成后运行一段代码,那么:

$.when.apply(null, array).then(function() {
  console.log("all deferreds in array are complete!");
});

如果您希望控制 deferreds 的运行顺序,则必须确保 deferreds 尚未开始。在将它们放入数组之前,我建议将它们包装在一个正在进行的延迟中。

var last = array[0];
function tackOnFunction(fn) {
  array.push(last = last.then(fn));
}
于 2013-06-17T18:35:12.817 回答