如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应用程序上做到这一点?
答案 0 :(得分:1)
您只需使用几行代码就可以构建它:
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;
}, {}));
}