如何通过RX.js在一个流中使用参数?

时间:2018-08-16 13:59:08

标签: angular rxjs rxjs6 switchmap

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

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

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

1 个答案:

答案 0 :(得分: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等。