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:我已更新了答案。