Sta*_*ame 2 observable rxjs angular
我有以下伪代码
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
})
Run Code Online (Sandbox Code Playgroud)
我在这里想要的是,我遍历一个对象数组,并为每个对象获取相关的用户和产品,然后订阅对用户和产品执行某些操作。我怎样才能做到这一点?
你可以使用 RxJSforkJoin和Array#map来并行触发多个 observables。
const objects = [obj1, obj2, obj3];
forkJoin(
objects.map(obj => // <-- `Array#map` function
forkJoin({
user: http.get(obj.user_id)
product: http.get(obj.product_id)
})
)
).subscribe({
next: (res) => {
console.log(res);
// use `res`
},
error: (err) => {}
});
/*
output in subscription:
[
{
user: result from `http.get(obj1.user_id)`,
product: result from `http.get(obj1.product_id)`,
},
{
user: result from `http.get(obj2.user_id)`,
product: result from `http.get(obj2.product_id)`,
},
{
user: result from `http.get(obj3.user_id)`,
product: result from `http.get(obj3.product_id)`,
}
]
*/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
909 次 |
| 最近记录: |