首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加入rxjava订阅的正确方法

加入rxjava订阅的正确方法
EN

Stack Overflow用户
提问于 2015-08-20 22:25:53
回答 1查看 378关注 0票数 3

我有一个方法getData()返回一个可观察的。

代码语言:javascript
复制
public Observable<Data> getData() {
  Observable<Data> observable = mApi.networkCall();
  return observable;
}

有许多客户调用此方法,如果可观测尚未完成,我希望他们只订阅在飞行中可观测。如果“可观测”已经完成,我需要重新启动呼叫,并获得一个新的“可观测”。什么是最好的方法来检测可观测的是完整的,我应该再次打电话给网络呼叫?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-20 23:12:08

使用.share()。第一次订阅将启动可观察到的订阅,随后的订阅者将收到相同的发射。一旦流终止,所有当前订阅者都将无效,下一个订阅将再次启动可观察到的订阅。

代码语言:javascript
复制
public Observable<Data> getData() {
  return mApi.networkCall().share();
}

请注意,我只期望getData()只被调用一次,并且返回的可观察重用。如果不是这样的话,我们将确保getData()返回一个单例。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32129453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档