我有一个N延迟数组:
var g=[];
var d=$.Deferred();
g.push(d);
var d=$.Deferred();
g.push(d);
过了一会儿,他们正在解决:
setTimeout(function (){g[0].resolve(1);},1000);
setTimeout(function (){g[1].resolve(2);},2000);
解决所有问题后:我想显示解析值的总和:
$.when.apply($,g).done(function (sum){console.log(sum)});
然而 - function (sum){...
签名仅适用于第一个订单或重新开发,所以我只能在这里获得1个。
如果我想获得2
- 我应该使用:function (sum1,sum2){
...
这是我的确切问题。我不想写`function (sum1,sum2,.....){
...
这样做的正确方法是什么?
答案 0 :(得分:2)
您可以使用arguments object
$.when.apply($, g).done(function () {
for (var i = 0; i < arguments.length; i++) {
console.log(arguments[i])
}
});
演示:Fiddle