У меня есть исходный поток, который может отправлять два типа сообщений. Я хотел бы разделить их на два отдельных потока и, как только исходный поток завершится, повторно объединить их окончательное значение излучения (или получить неопределенное значение, если его не существует).
* 1003 например *
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 для выдачи значения всякий раз, когда исходный поток завершается.