RxJava - 重放+ autoConnect + refCount

时间:2017-11-20 15:13:12

标签: rx-java

我有这个要求:

  1. 预先形成网络请求的观察
  2. 1-3个实体之间可以订阅它,但我们只需要一个请求(缓存为1)(autoConnect)
  3. 他们可以在收到请求后重新订阅(重播(1))
  4. 如果所有订阅者都取消订阅,我们也应该取消订阅(refCount)
  5. 在某些事件中我们需要发出新请求,导致订阅者获得新项目以及未来订阅者。
  6. 问题是那些操作员不能很好地一起玩,一旦你调用refCount或autoConnect就会得到一个可观察的,所以你不能打电话给另一个。

    我尝试过类似request().repeatWhen(redoRequest()).replay(1).autoConnect().share()的内容 但它不会正确取消订阅,因为我们在此处进行双重发布/连接。

    我发现我唯一不确定工作的方法是手动进行unsubscirption并使用autoConnect的重载来返回订阅。

    我是如何正确实现的?

0 个答案:

没有答案