小编use*_*062的帖子

等待多个延迟对象完成并使用已解析的值

我试图找出一种方法来等待多个延迟对象并在完成后处理它们,可能就像为延迟对象启动下一组.

我被困了,因为下面的结果不是预期的结果.我期待结果为

allDone resovled values are 1,2,3
Run Code Online (Sandbox Code Playgroud)

实际结果是

allDone resovled values are 1,2
Run Code Online (Sandbox Code Playgroud)
var dfd1 = new $.Deferred();
var dfd2 = new $.Deferred();
var dfd3 = new $.Deferred(); 
var dfds = [ dfd1, dfd2, dfd3 ]; 
var resolvedValues = [];

$.when.apply($, dfds).done(function() {     
    dfds.forEach(function(dfd){
        console.log("inloop");      
        dfd.promise().done(function(value) {
            resolvedValues.push(value);         
        });     
    });
    console.log("allDone resovled values are" + resolvedValues);
})

dfd1.resolve(1);
dfd2.resolve(2);
dfd3.resolve(3);
Run Code Online (Sandbox Code Playgroud)

jquery

7
推荐指数
1
解决办法
4001
查看次数

标签 统计

jquery ×1