当前位置: 首页 > 知识库问答 >
问题:

重用订户

仲孙温文
2023-03-14

在RxJava中,我有一个订阅者对象,其中我订阅了可观察的。稍后(在调用on完整()后的一段时间)我创建了一个新的可观察的并使用之前使用的相同订阅者实例进行订阅。但是,这似乎不起作用。订阅者不能重用吗?

示例:

class Loader extends Subscriber<T> {

   public void load(){
       Observable.just("Foo").subscribe(this);
   }

   public void onComplete(){
     // update UI
   }

}

在我的代码中,我想实例化Loader一次,并多次调用load(),例如在用户单击刷新按钮后...

共有2个答案

滑景胜
2023-03-14

使用Observable::concat创建一个Observable,该Observable按顺序从多个Observable中发出项目。订阅。

曾骁
2023-03-14

您不能重用订阅服务器,因为它实现了订阅,其中有一个字段,一旦设置为true,就再也不会变为false,因此订阅不能重用。

另一方面,Observer不包含有关订阅状态的任何信息,因此您可以重用它。每次您将观察者订阅到可观察者时,RxJava实现都会为您将其打包到新的订阅者中。

 类似资料:
  • 我发现在Node.js客户机中,我们可以传递“reuseexisting:true”选项来重用现有的订阅: 如果我使用正式的java pubsub客户机,我应该通过什么选项?:

  • 我正在用Boot建立一个非常小的spring/REST/JPA项目,使用注释。 当我将JPA存储库类移到一个不同的包中,并对其包调用componentscan时,我的REST controller类中出现了一些Bean not found错误,该REST controller类有一个Autowired存储库变量。然而,当我的所有文件(共5个)都在同一个包中时,一切都正常工作。 所以我想知道,不管这

  • 例如: 我是否需要取消订阅此订阅?我问这是因为我不知道Angular是否处理它本身。另外,请求是一次性的,而不是连续的。我倾向于认为我不需要。你有什么想法? 根据下面的帖子:Angular/RXJS,我什么时候应该取消订阅'subscription' RxJS处理一次性订阅,但我在他们的文档中没有找到任何东西。

  • 语境: 给定一个WooCommerce和WooCommerce订阅的WordPress网站,我试图获取特定用户订阅的列表。在最近的更新之前,这一行代码已经为我解决了这个问题。以下是我一直在使用的代码: 其中$user\u id是WordPress中的有效用户id。 问题: 自上次更新以来,我们经常看到以下错误: 致命错误:在/home/warfarep/public_html/wp content

  • 我尝试了很多,但当我找不到解决方案时,我将第一个问题发布在这里: 我有四张桌子: 当然,一个客户只能在一个订单中订购一次产品 在一个查询中,我想返回每个customer\u id以及order\u id和product\u id,这些客户在多个订单中订购了任何产品。 换句话说,对于每个客户,我希望找到客户多次订购的不同产品(在单独的订单中),以及product\u id和order\u id。因此

  • > 使用改型的API类 UseCase类 null null MainClass.kt 应用程序运行时: 如果api返回NULL,将调用retryWhen(),然后再次调用api。达到事件not超时,并且api返回not NUL结果->onSuccess被调用。这是RXJava中对retryWhen()运算符的正确处理。 我的问题: 如果我在mainclass.kt中编写一些测试方法(假装API改