我有一个Observable<Project>
返回一个对象数组。我需要根据使用对象ID从请求中构造的Observable<boolean>
来过滤此数组。
下面的代码行中有一些内容,但是我需要数组中的实际对象,而不是我当前也映射它们的布尔数组。我猜想在最初的Observable已承诺将两个值都加入后,我可以在zip行中使用某些东西,以便可以在过滤器中使用它们。
this.projectService.getCurrentUserProjects().pipe(
mergeAll(),
mergeMap((project) => this.getProjectConditions(project.id)),
filter((condition) => condition),
toArray()
)
我目前的潜在客户是:
答案 0 :(得分:2)
请考虑使用内部map
作为数组返回两个值(数据和条件),如下所示:
this.projectService.getCurrentUserProjects().pipe(
mergeAll(),
mergeMap((project) => this.getProjectConditions(project.id).pipe(map(condition => [project, condition]))),
filter(([,condition]) => condition), // <= only destruct second parameter
map(([project]) => project), // <= only destruct first parameter
toArray()
)