1 回答
TA贡献2036条经验 获得超8个赞
什么实例?
从文档中上一句的上下文中应该可以清楚地看到:
发射器允许以 a
Disposable
或Cancellable
viasetDisposable(Disposable)
或setCancellable(Cancellable)
分别的形式注册单个资源。发射器实现将处置/当下游取消流或事件生成逻辑来电之后取消这种情况下onSuccess(Object)
,Emitter.onError(Throwable)
,Emitter.onComplete()
或当tryOnError(Throwable)
成功。
aDisposable
或的实例Cancellable
。
为什么不能用普通的观察者创建 Xxx
我们不希望用户调用该onSubscribe
方法,因为它在运算符中没有用处。我们无法隐藏方法,因此我们设计了一个单独的界面,其中仅包含受支持的方法。
.subscribe() 返回一次性?
因为所谓的同步取消问题。如果您的方法由于某种原因永远不会返回,则它无法返回 aDisposable
并且下游无法取消流。
为什么 .onSubscribe() 从 Emitter 中被淘汰
没有理由调用它,因为操作员会在调用发射器实现Observer.onSubscribe
的subscribe
方法之前为您处理对下游的调用。
需要发射器的理由是什么?
API 设计。我们提供了一组清晰的方法,可以在不暴露任何不应该或不会工作的方法的情况下调用这些方法。
你什么时候会使用可取消和一次性?
请阅读javadoc和签名。使用适合您的资源取消需求的任何一种。
添加 .tryOnError() 有什么帮助?
请阅读javadoc。
是否有对该方案的更全面的解释?
请参阅各种方法javadocs中的每个示例。
.retry() 是否在尝试重新订阅之前调用 .dispose() 上游?
理论上,dispose
当收到错误时不需要调用,但当前的实现可能会这样做。我必须考虑这是否需要在 RxJava 中改变。
添加回答
举报