我有两个可观察对象(映射到两个REST调用)和一个主题(映射到用户交互),我想将它们的结果合并为一个可观察对象。
默认情况下,所得的可观察值应为false,如果所有可观察值都为true,则为true。
我对要使用哪种RXJS方法感到困惑。我认为我必须使用combineLatest
,但不确定如何使用。
this.result$ = combineLatest(
this.obs1$.pipe(
take(1),
map(result => result.wasSeen)
),
this.obs2$.pipe(
take(1)
),
this.subj1$).pipe(
//
, startWith(false)
)
);
答案 0 :(得分:2)
您在正确的轨道上。
this.result$ = combineLatest([
this.obs1$.pipe(
map(result => result.wasSeen),
),
this.obs2$,
this.subj1$
]).pipe(
map([b1, b2, b3] => b1 && b2 && b3),
);
请勿执行take(1)
。如有必要,请使用forkJoin
代替combineLatest
。