0

我有两个来自 firestore 的流,我只需要在这两个流第一次产生值时进行计算密集型操作。

我已经考虑过combineLatest2(),但据我所知,这将在每次流产生输出时执行(不仅仅是第一次)。

我考虑过.firstWhere(),但我不知道如何组合流来使用它。

任何建议,将不胜感激。

谢谢

4

2 回答 2

0

如果将 take(1) 添加到传入的流中,则可以为此使用 forkJoin。然后流将在一个输入后完成,并且 forkJoin 将触发。

forkJoin(
    stream1$.pipe(take(1)),
    stream2$.pipe(take(1))
).pipe(
    // Do your computationally intensive operation 
);
于 2019-03-29T05:40:41.130 回答
0

您的回答帮助我找到了有用的解决方案。

combineLatest2(stream1.take(1), stream2.take(1), (s1, s2) {
// computationally intensive operation
}).listen((_) => {});
于 2019-03-30T02:57:21.500 回答