将带有承诺的对象文字传递给 Q.all()
Pass object literal with promises to Q.all()
如 this question 中所述,Angular promise 库 $q
可以接受包含一堆 promise 的对象,并且在 .then()
函数中,您可以使用对象键检索结果:
$q.all({
result1: foo(),
result2: bar()
})
.then(function(results) {
var fooData = results.result1;
var barData = results.result2;
});
常规 Q 库可以实现这样的功能吗?如何在我的 Node.js 应用程序上执行此操作?
您始终可以只用几行代码构建它:
function all( object ){
if(Array.isArray( object ))
return $q.all( object );
var keys = Object.keys(object);
return $q.all(keys.map(key => object[key]))
.then(values => values.reduce((acc, value, index) => {
acc[keys[index]] = value;
return acc;
}, {}));
}
如 this question 中所述,Angular promise 库 $q
可以接受包含一堆 promise 的对象,并且在 .then()
函数中,您可以使用对象键检索结果:
$q.all({
result1: foo(),
result2: bar()
})
.then(function(results) {
var fooData = results.result1;
var barData = results.result2;
});
常规 Q 库可以实现这样的功能吗?如何在我的 Node.js 应用程序上执行此操作?
您始终可以只用几行代码构建它:
function all( object ){
if(Array.isArray( object ))
return $q.all( object );
var keys = Object.keys(object);
return $q.all(keys.map(key => object[key]))
.then(values => values.reduce((acc, value, index) => {
acc[keys[index]] = value;
return acc;
}, {}));
}