如果从$.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..

09-07 12:26