0

如果我想将返回值从第一个流传递到第二个流,我使用switchMap.

如果我想在第二个中使用第一个流中的参数,但我不想进行 2 订阅,我应该使用什么?

this.firstStream$.subscribe(first => {
  this.secondStream$.subscribe(second => {
  // here I want to use first and second.
}
4

1 回答 1

3

有很多不同的方法可以做到这一点,具体取决于您要完成的工作。例如,有 ForkJoin:

import { of, forkJoin} from 'rxjs';

const firstObservable = of('David');
const secondObservable = of('Acosta');

forkJoin(firstObservable, secondObservable).subscribe(values => {
    const firstValue = values[0];
    const secondValue= values[1];
    console.log(firstValue);
    console.log(secondValue);
});

这会在发出值之前等待两者都完成。如果您希望一个可观察对象首先发出,您可以使用其他运算符,例如 switchMap、concat 等。

于 2018-08-16T14:38:33.780 回答