Как использовать param из одного потока в другом с RX.js?

Если я хочу передать возвращаемое значение из первого потока во второй, я использую switchMap,

Что я должен использовать, если я хочу использовать param из первого потока в секунду, но я не хочу делать 2 подписки?

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

1 ответ

Есть довольно много разных способов сделать это, в зависимости от того, что вы пытаетесь достичь. Например, есть 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 и т. Д.

Другие вопросы по тегам