如果从$.each
循环调用jQuery延迟器,我似乎无法正常工作。
var deferreds = [],
ids = ['1234', '4321'],
users = [];
$.each(ids, function(i,v){
deferreds.push(
$.getJSON('api/users/'+v, function(i,v){
users.push(v.username);
})
);
});
$.when($, deferreds).done(function(){
console.log(users);
});
最佳答案
问题是使用when
。
特别是,用法缺少apply
-因此它在“等待” $和deferreds数组(将立即“解析”),而不是每个都推迟。
与之比较:
$.when.apply($, deferreds).done..