combineLatest2 只有第一个非空流输出
combineLatest2 with only the first non-null stream outputs
我有两个流来自 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((_) => {});
我有两个流来自 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((_) => {});