如何*当*一个延迟数组

时间:2013-06-25 16:11:47

标签: javascript jquery jquery-deferred .when

我正在尝试为数组中的每个项目进行ajax调用。现在我把所有的promises扔进一个数组然后做$ .when.apply ...

// throw all the promises into an array
_.each(birds,function(bird,i){
    birds[i] = getBird(bird) // getBbird returns $.ajax(...)
});
// do $.when.apply
return $.when.apply($,birds).then(function(res){
    console.log("bird is the word",res)
});

我最初的SO搜索basically confirmed我这样做是“应该做的”。但是apply感觉很难过。是否有更标准化/通用的jQuery方法来实现这一目标?

提前致谢。

1 个答案:

答案 0 :(得分:1)

  

但申请感觉很哈哈。是否有更标准化/通用的jQuery方法来实现这一目标?

不,jQuery方式 hacky,并没有让我开始how the results are to be handled

但是,此功能的标准化工具已在所有正确的承诺库中实施(BluebirdQRSVP,{{3 }},When,甚至在即将到来的Dojo中),称为all(),它可以作为promise构造函数的静态函数。