首页 > 解决方案 > 当内部的任何一个发出时,发出 combine observable

问题描述

我有两个 observablesobs1obs2. 我正在寻找一个在至少其中一个发出时发出的运算符。combineLatest他们都需要至少发出一次。

import { combineLatest, forkJoin,  of, zip, } from 'rxjs'; 
import { map } from 'rxjs/operators';

const obs1 = of();
const obs2 = of(1,2,3);

let s = null; 

s = combineLatest(obs1, obs2)
  .pipe(map(([a, b]) => {
    console.log(a, b);
  })).subscribe();

标签: rxjs

解决方案


我相信你正在寻找merge.

const obs1$ = timer(1000).pipe(map(() => 'Observable 1 emitted'));
const obs2$ = timer(10000).pipe(map(() => 'Observable 2 emitted'));

merge(obs1$, obs2$).subscribe(console.log);

请参阅 Stackblitz https://stackblitz.com/edit/rxjs-kp8od3?file=index.ts


推荐阅读