java - 如何检测 Observable<Observable<Object>> 中所有包含的 Observable 的完成

标签 java system.reactive rx-java

我希望我的 api 上有一个方法返回 Observable> 但我希望该方法中的代码知道所有包含的 Observables 是否已完成,以便它可以关闭某些内容。最好的方法是什么?

更明确地说,我希望完成此方法:

public static <T> Observable<Observable<T>> doWhenAllComplete(
        final Observable<Observable<T>> original, Action0 action) {
  ...
}

最佳答案

抱歉,我的答案是在.NET中(就像system.reactive标签一样);我相信你可以翻译它!

如果您的IObservable<IObservable<Object>>source 给出那么:

source.Merge()
      .Subscribe(_  => {}, /* not interested in onNext */
                 () => /* onCompleted action here, called when all complete */);

注意:如果任何流出错(导致合并流在此时终止),这将失败,因此您也可以执行此操作来吞掉各个流上的错误:

source.SelectMany(x => x.Catch(Observable.Empty<Object>()))
      .Subscribe(_  => {}, /* not interested in onNext */
                 () => /* onCompleted action here, called when all complete */);

关于java - 如何检测 Observable<Observable<Object>> 中所有包含的 Observable 的完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21477199/

相关文章:

java - 从 onBalloonTap 加载 Activity

java - FTPClient 在有文件时显示空文件夹

c# - 如何将 IEnumerable 转换为 IObservable?

JavaRx on ErrorReturn 返回不同的类型

java - 我应该如何将 List<Observable<T>> 压缩为 Observable<List<T>> ?

Java Hadoop : How can I create mappers that take as input files and give an output which is the number of lines in each file?

java - Java为HashSet中的ConcurrentModificationException提供的类是什么?

c# - 为什么重复 Enumerable 到 Observable 转换 block

android - 使用 RX 和 Kotlin 组合网络请求

java - 为什么 Observable.zip 不调用finallyDo?