我有两个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 })),
))
);