Как использовать 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 и т. Д.