即时合并可观察到的

时间:2018-09-12 20:24:49

标签: rx-java2 rx-android

我的UI可以触发多个网络连接,并且我想提供一个状态指示器,无论连接是LoadingCompleted还是Error

每个网络连接的ObservableNetworkStatus。由于可能同时运行许多网络连接,所以我只想全部merge,以便UI可以获取NetworkStatus的一个来源。

这个来源应该是这样的:

  • 如果所有网络连接均完整无误,则源代码发出Complete

  • 一旦有新的网络连接运行,源将发出Loading状态。

  • 如果有多个网络连接正在运行,并且一些连接已完成并且一些正在加载,则应发出Loading状态。仅在所有网络连接完成后,Loading状态才会更改。

  • Error事件应在发生后立即发送,并且仅在成功重试失败的网络连接后才被覆盖。

  • 如果所有NetworkStatus Observables完成,则在开始新的网络连接时,单个源仍可以发出新状态。

由于网络状态指示器是一个常见问题,我相信必须有一些RxJava操作员为此做好准备。但是我对RxJava并不熟悉,因此不知道可以使用哪些运算符来提供这种功能。也许我对RxJava的要求过高,这将需要实现特定的代码?

0 个答案:

没有答案