Javascript 可观测值的发射值取决于其他可观测值

Javascript 可观测值的发射值取决于其他可观测值,javascript,angular,rxjs,observable,Javascript,Angular,Rxjs,Observable,我有两门课 const a$ = new Subject<number>(); const b$ = new Subject<string>(); 但是如果我在merge之后添加map,我无法从中检测出可观察的值。另外,CombineTest不是一个例子,因为我想得到结果,即使其中一个对象没有发出。要区分从何处发出的内容,可以映射传入值: import {merge} from 'rxjs'; const result$ = merge( a$.pipe(map(

我有两门课

const a$ = new Subject<number>();
const b$ = new Subject<string>();

但是如果我在
merge
之后添加
map
,我无法从中检测出可观察的值。另外,
CombineTest
不是一个例子,因为我想得到结果,即使其中一个对象没有发出。

要区分从何处发出的内容,可以映射传入值:

import {merge} from 'rxjs';

const result$ = merge(
  a$.pipe(map(v => ({a: v})),
  b$.pipe(map(v => ({b: v}))
)

正如您所注意到的,我在这里使用了一个静态
merge
操作符。在这种情况下看起来更具可读性

组合测试
与最新版本
邮政编码
(取决于您的使用案例)与
开始日期
一起查看。如果您在两个流上都进行一些计算,那么如果没有合适的值,您应该有“默认”值谢谢。我的错误是,我试图使用来自
rxjs/operators
(而不是
rxjs
)的
merge
)作为静态,但无法确定它返回什么。谢谢你的欢迎。您也可以使用实例操作符获得相同的输出,但它看起来不是很可读-
a.pipe(map(a=>({a})),merge(b.pipe(map(b=>({b})))
import {merge} from 'rxjs';

const result$ = merge(
  a$.pipe(map(v => ({a: v})),
  b$.pipe(map(v => ({b: v}))
)