在这里,我想要承诺一个一个解决。 Q.when
似乎是一个很好的包装值。如果我已经有了一组Promise,除了使用.then(function(){return next();})
之外,是否有一种紧凑的方式来执行此操作?任何紧凑的方式来承诺序列?
Here is my JSBin.及相关的JavaScript:
function wrap(v) {
var defer = Q.defer();
window.setTimeout(function() {
console.log('okay, fine!');
defer.resolve(v);
}, 3000);
return defer.promise;
}
/*
wrap(1)
.then(function() {
return wrap(3);
})
.then(function(v) {
console.log(v);
});
*/
/* map result is an array of promise
when using reduce, it will resolve one by one.
*/
[1, 3, 4, 5].map(wrap)
.reduce(Q.when, Q(undefined))
.then(function(v) {
console.log(done);
});
如果你已经有了承诺的阵列有*不*您可以等待除外('Q.all')做的。 – Bergi
您是否需要支持一系列动态大小或者您有预定义的数组? –
与您的问题相关的代码必须粘贴到问题中,而不仅仅在外部链接中提供。这是一个堆栈溢出策略。 – jfriend00