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