Angular 角度rxjs:处理多个http请求

Angular 角度rxjs:处理多个http请求,angular,rxjs,observable,Angular,Rxjs,Observable,我有以下伪代码 objects = [obj1, obj2, obj3] for obj in objects { user: http.get(obj1.user_id) product: http.get(obj1.product_id) }.subscribe(results => { do something with results }) 我在这里想要的是,我循环通过一个对象数组,为每个对象获取相关的用户和产品,然后订阅用户和产品。我怎样才能做到这一点呢?您可以使用

我有以下伪代码

objects = [obj1, obj2, obj3]    
for obj in objects {
user: http.get(obj1.user_id)
product: http.get(obj1.product_id)
}.subscribe(results => {

do something with results

})
我在这里想要的是,我循环通过一个对象数组,为每个对象获取相关的用户和产品,然后订阅用户和产品。我怎样才能做到这一点呢?

您可以使用RxJS和并行触发多个观测值

const objects=[obj1、obj2、obj3];
分叉连接(
objects.map(obj=>/){
控制台日志(res);
//使用`res`
},
错误:(err)=>{}
});
/*
订阅中的输出:
[
{ 
user:http.get(obj1.user_id)的结果,
product:http.get(obj1.product_id)的结果,
},
{ 
user:http.get(obj2.user_id)的结果,
product:http.get(obj2.product_id)的结果,
},
{ 
user:http.get(obj3.user_id)的结果,
product:http.get(obj3.product_id)的结果,
}
]
*/
您可以使用组合请求,并在每个请求完成后执行一些代码:

const sourceOne = http.get(obj1.product_id);
const sourceTwo = http.get(obj2.product_id);

zip(sourceOne, sourceTwo).subscribe(val => {
    // do something
});

您可以尝试使用observables检查此信息:或者您可以检查有关承诺的信息:如何控制台。在订阅中记录结果?@StaticName:我已更新了答案。