我试图找出一种方法来等待多个延迟对象并在完成后处理它们,可能就像为延迟对象启动下一组.
我被困了,因为下面的结果不是预期的结果.我期待结果为
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 ×1