RxJS - 连接并合并两个可观察对象

问题描述 投票:0回答:1

我有两个Observables

public readonly availableTags$ = this.tagSandbox.observeTags()
public readonly jobs$ = this.jobSandbox.observeJobsAfterFiltering()

我用它作为带有Input管道的Angular组件的async值。

我想在单个对象中转换这两个可观察对象并将它们的值“合并”在单个对象中。

{
   availableTags: Tag[],
   jobs: Job[]
}

但是,jobs$的值只有在availableTags$发布其值后才能获取。那可能吗?

这一切都是为了避免输入属性的“双重加载”。

rxjs
1个回答
1
投票

您可以使用cocatMapmergeMap也可以),然后将第二次调用的响应与第一次调用的结果一起映射到单个对象中:

availableTags$.pipe(
  concatMap(availableTags => jobs$.pipe(
    map(jobs => ({ availableTags, jobs })),
  ))
);
© www.soinside.com 2019 - 2024. All rights reserved.