【问题标题】:Clearification: Would an Observable notify onComplete() after it calls onError()?澄清: Observable 在调用 onError() 后会通知 onComplete() 吗?
【发布时间】:2018-04-16 01:25:57
【问题描述】:

我需要在流完成时释放资源,无论是 onError 还是 onComplete。从通知上的ReactiveX The Observable Contract 读取它说

一个 Observable 可以发出零个或多个 OnNext 通知,每个 代表单个发射的项目,然后它可能会跟随那些 OnCompleted 或 OnError 的发射通知 通知,但不能同时通知。

将清理调用同时放入 onError 和 onComplete 通知是否正确?像这样:

.subscribe(
    //onNext
    completable -> Log.d(LOG_TAG,"done"),
    //onError
    throwable -> {
      Log.d(LOG_TAG,"error");
      serviceCleanup();
    },
    //onComplete
    this::serviceCleanup
);

例如。仅用于将来的文档目的,以便我可以向其他人和我自己解释。

【问题讨论】:

    标签: rx-java reactivex


    【解决方案1】:

    您最好使用doFinallydoAfterTerminate 来清理资源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-10
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      相关资源
      最近更新 更多