java - Reactive Java Subscription 是一个什么样的对象?

标签 java rx-java reactive-programming

在 Reactive Java 中,我们被告知 .subscribe() 调用返回“订阅引用”。但是Subscription是一个接口(interface),而不是一个类。那么我们交给什么样的对象来实现这个接口(interface)呢?我们对此有控制权吗?

Subscriptions 类可以创建并返回几种不同类型的 Subscription,但是我们如何使用它们呢?如果我写

Subscription mSub = Subscriptions.create(<some Action0>); 
mSub = someObservable.subscribe(); 

我刚刚创建的 Subscription 不会被 .subscribe() 调用返回的内容覆盖吗?如何使用您创建的订阅

(在某种程度上相关的注释中,Subscriptions.unsubscribed() 的意义是什么,它“返回一个订阅,取消订阅不会执行任何操作,因为它已经取消订阅了。哈?”

最佳答案

简短回答:你不应该关心。

更长的答案:订阅为您提供两种方法:

  • unsubscribe(),这会导致订阅终止。
  • isUn​​subscribed(),它检查是否已经发生了。

您可以使用这些方法 a) 检查 Observable 链是否终止,b) 使其提前终止,例如,如果用户切换到不同的 Activity。

就是这样。您不会故意接触内部结构。另外,您是否注意到没有 resubscribe 方法?这是因为如果你想重新启动操作,你需要重新订阅 Observable,给你一个新的订阅。

关于java - Reactive Java Subscription 是一个什么样的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42349284/

相关文章:

java - 如何修复文本文件中的标点符号?

java - 为什么不把hasNext()、next()等方法放在Collection接口(interface)中呢?

java - 如何缓冲 GroupedFlux 的 Flux?

c# - 使用 Reactive Extensions (RX),是否可以添加 "Pause"命令?

java - 需要 XSD 日期格式

java - Observable.concat 异常

java - 如何让 RxJava 间隔立即执行 Action

reactive-programming - 响应式流中的 Mono vs Flux

reactive-programming - RxJS合并最新的: how to get emit after just one value changes?

java - 在 CorDapp 上本地部署节点时出现异常 - 节点信息生成