而不是
deferred.resolve()在将立即解决的数组上使用
Q.all,而是使用它等待一个promise数组:
theFunction().then(function(data) { var result = []; for(var i=0; i < data.length; i++) (function(i){ result.push(secondFunc(data[i].item) .then(function(data2) { data[i].more = data2.item; return data[i]; })); })(i); // avoid the closure loop problem return Q.all(result)});
甚至更好:
theFunction().then(function(data) { return Q.all(data.map(function(item) return secondFunc(item) .then(function(data2) { item.more = data2.item; return item; }); });});
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)