我有两个科目。
const a$ = new Subject<number>();
const b$ = new Subject<string>();
我希望有第三个可观察到的东西,它是基于上述两个主题的。因此,取决于发出的主题及其值,我想进行计算并发出一些值。
我尝试过:
const result$ = a$.pipe(merge(b$))
但是,如果我在map
之后添加merge
,则无法检测到可观察到的价值。此外,combineLatest
也不是这种情况,因为即使没有发出其中一个主题,我也想得到结果。
答案 0 :(得分:1)
要区分来自何处,可以映射输入值:
import {merge} from 'rxjs';
const result$ = merge(
a$.pipe(map(v => ({a: v})),
b$.pipe(map(v => ({b: v}))
)
您已经注意到,我在这里使用了静态merge
运算符。在这种情况下看起来更具可读性