【发布时间】:2017-06-11 22:43:48
【问题描述】:
我不明白问题出在哪里,我在这里阅读了几个问题,但没有类似的东西。 我不能使用函数来返回承诺,我只需将所有承诺放在一个数组中并将其传递给“$.when”函数。
var pr = [];
var count = 3;
while(count--){
setTimeout(function(){
var def = $.Deferred();
pr.push(def.promise());
console.log('COUNT: '+count); def.resolve(count);
}, Math.random()*2000);
}
$.when.apply($, pr).done(function(d){
console.log("LOG:",d);
});
显然不起作用,因为 WHEN pr 到那时是空的。 怎么解决?
【问题讨论】:
-
您需要立即创建延迟(以便您可以将它们传递给
$.when),而不是将来的某个时候!
标签: jquery promise jquery-deferred .when