【发布时间】:2019-07-11 08:27:26
【问题描述】:
我有一个可以发出两种类型消息的源流。我想将它们分成两个单独的流,一旦原始流完成,重新组合它们最终发出的值(如果不存在,则为 undefined)。
例如
const split1$ = source$.pipe(
filter(m) => m.kind === 1,
mergeMap(m) => someProcessing1());
const split2$ = source$.pipe(
filter(m) => m.kind === 2,
mergeMap(m) => someProcessing2());
forkJoin(split1$, split2$).subscribe(
(output1, output2) => console.log(output1, output2));
问题在于,没有任何东西可以保证 split1$ 和 split2$ 都会发出值。如果发生这种情况,forkJoin 永远不会发出。 每当源流完成时,我可以用什么替换 forkJoin 来发出一个值。
【问题讨论】:
标签: rxjs