我有两个来自 firestore 的流,我只需要在这两个流第一次产生值时进行计算密集型操作。
我已经考虑过combineLatest2()
,但据我所知,这将在每次流产生输出时执行(不仅仅是第一次)。
我考虑过.firstWhere()
,但我不知道如何组合流来使用它。
任何建议,将不胜感激。
谢谢
如果将 take(1) 添加到传入的流中,则可以为此使用 forkJoin。然后流将在一个输入后完成,并且 forkJoin 将触发。
forkJoin(
stream1$.pipe(take(1)),
stream2$.pipe(take(1))
).pipe(
// Do your computationally intensive operation
);
您的回答帮助我找到了有用的解决方案。
combineLatest2(stream1.take(1), stream2.take(1), (s1, s2) {
// computationally intensive operation
}).listen((_) => {});