RxJS - 连接并合并两个可观察对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RxJS - 连接并合并两个可观察对象相关的知识,希望对你有一定的参考价值。
我有两个Observables
public readonly availableTags$ = this.tagSandbox.observeTags()
public readonly jobs$ = this.jobSandbox.observeJobsAfterFiltering()
我用它作为带有Input
管道的Angular组件的async
值。
我想在单个对象中转换这两个可观察对象并将它们的值“合并”在单个对象中。
{
availableTags: Tag[],
jobs: Job[]
}
但是,jobs$
的值只有在availableTags$
发布其值后才能获取。那可能吗?
这一切都是为了避免输入属性的“双重加载”。
答案
您可以使用cocatMap
(mergeMap
也可以),然后将第二次调用的响应与第一次调用的结果一起映射到单个对象中:
availableTags$.pipe(
concatMap(availableTags => jobs$.pipe(
map(jobs => ({ availableTags, jobs })),
))
);
以上是关于RxJS - 连接并合并两个可观察对象的主要内容,如果未能解决你的问题,请参考以下文章
Angular RxJS入门笔记 (Observable可观察对象Subscribe订阅Observer观察者Subscription对象)