Typescript RXJS-同时订阅2个观测值并获取这两个值

Typescript RXJS-同时订阅2个观测值并获取这两个值,typescript,rxjs,observable,Typescript,Rxjs,Observable,我有两个可观察的数字$和文本$。 我想同时订阅这两个,并在内部订阅中获取它们的值 我的代码现在如下所示: number$.subscribe((nr: number) => { text$.subscribe((txt: string) => { this.foo(nr, txt); }); }); 有没有办法把这两个结合起来,这样我只需要一个订阅? 我知道forkJoin(在这里可能工作得很好),但是它已经被弃用了,我们不想使用弃用的函数 提前谢谢

我有两个可观察的数字$和文本$。 我想同时订阅这两个,并在内部订阅中获取它们的值

我的代码现在如下所示:

number$.subscribe((nr: number) => {
    text$.subscribe((txt: string) => {
        this.foo(nr, txt);
    });
});
有没有办法把这两个结合起来,这样我只需要一个订阅? 我知道forkJoin(在这里可能工作得很好),但是它已经被弃用了,我们不想使用弃用的函数


提前谢谢

如果要并行触发事件,应使用

如果要逐个调用事件,可以使用或
.

如果要并行触发事件,应使用

如果要逐个调用事件,可以使用或
.

我认为您正在寻找or,不同的是CombineTest在两个可观察对象上激发的每个数据上发射,而forkJoin在两个可观察对象都完成时发射。在大多数情况下,您应该使用
combinelateest

例如,当使用
CombineTest
时,source
number$
激发了一个值,但source
text$
没有激发,然后管道等待
text$
激发一个值,然后将两个值都发射到子记录器,然后在激发新值时保持从两个源发射最新值。记得在destroy上取消订阅

combineLatest(number$,text$).subscribe(([numberValue,textValue]) => {
 // Do your logic
})

我认为您正在寻找或,不同的是,在两个可观察对象上激发的每个数据上,CombineTest发射,而forkJoin在两个可观察对象都完成时发射。在大多数情况下,您应该使用
combinelateest

例如,当使用
CombineTest
时,source
number$
激发了一个值,但source
text$
没有激发,然后管道等待
text$
激发一个值,然后将两个值都发射到子记录器,然后在激发新值时保持从两个源发射最新值。记得在destroy上取消订阅

combineLatest(number$,text$).subscribe(([numberValue,textValue]) => {
 // Do your logic
})

有forkJoin、combineLatest、zip和withlatest,它们的行为都有一点不同。forkJoin在这里可以工作,但是deprecrated@AndreasRainer不,它不是
forkJoin
没有被弃用。
subscribe
函数已更改:有forkJoin、CombineTest、zip和WithLatest,所有这些函数的行为都有一点不同。WorkJoin在这里工作,但是deprecrated@AndreasRainer不,它不是
forkJoin
没有被弃用。
subscribe
函数已更改:我想并行启动它,因为我需要两者都调用foo()。。。forkJoin可以工作,但不推荐使用。我想并行启动它,因为我需要两者都调用foo()。。。forkJoin可以工作,但不推荐使用。