问题标签 [rx-java3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
142 浏览

java - 检查一个特定事件之后是另一个事件并使用 RxJava 发出成功

我需要检查一个无限的可观察(来自设备的事件)是否发出了一个特定的事件,让我们称之为“开始”,然后是另一个“完成”。然而,在这两个事件之间,可以接收到任意数量的不同事件,它们必须被忽略。其结果应该是 Completable.complete() ,当“Started”事件之后是“Finished”事件,在设置的超时之前是成功的。

对于这个问题,我有一个可行的解决方案,但是它看起来很丑而且太复杂,我认为可能有一个更优雅/更简单的解决方案。我当前的代码看起来像这样,我已经概括了我的代码,所以它更容易理解,基本上在这个例子中,我检查在 Flowable 在 10 秒超时之前发出数字“5”之后收到数字“8”。:

编辑:我找到了一个更干净的版本,但是这似乎很奇怪,因为我使用 .filter 运算符然后在收到的第一个元素上完成,我将其发布在下面以供参考:

UPDATE2:我更满意的版本:

0 投票
1 回答
73 浏览

rx-java - 为什么在 RxJava 中使用 onBackpressureDrop () 会发生这种情况

在这里,我有一个 flowable,它每毫秒发出一次元素。

我使用 before 来知道 observable 发射元素的时刻,我怀疑这里从 127(当观察者满时)到 9688

但是,当我更多地检查控制台(使用其他搜索过滤器)时,我意识到当 127 发出时它已经转到 12794,所以不是 9688,它不应该是 12794 或接近的数字?, 谢谢。

但是,当我更多地检查控制台(使用其他搜索过滤器)时,我意识到当发出 127 时,它已经是 12794,所以不是 9688,它不应该是 12794 或当可观察对象已经空闲时的接近数字? ,我澄清一下我是 RxJava 的新手,以防我说错了,谢谢。

0 投票
0 回答
112 浏览

java - 在 Micronaut 中使用 @Client 接口时如何处理错误

Micronaut 新手,想知道人们如何处理错误。文档中的示例使用了我不想用来处理错误的阻塞。基本上,我想做的是能够检测是否有错误,如果有,则将其转换为 Errors 类。如果它不能转换为 Errors 类,让全局处理程序处理它。有人对我的场景有很好的示例代码吗?下面是我的代码。谢谢

0 投票
0 回答
23 浏览

rx-java - 使用 retryWhen 时没有成功

我想在成功重试后获得成功。这是我的最小工作示例:

这将订阅和打印0, subscribe 1。如果我取消注释注释行,我只会得到0, 1, 2, 3 如何在给定示例中获得成功的订阅价值?

0 投票
1 回答
43 浏览

java - 如何在 Rxjava 中的列表更改时通知观察者

我上三班。Pref、A 类和 B 类。

应用程序首先运行 ClassA。

现在我想从 ClassB 更改列表。

当我跑步ClassA时,System.out works很好。但是当我从ClassB没有任何事情发生更改列表时。我的问题是,使用Rxjava. 是用来Rxjava建的吗?如果我错了,我该如何实现这个功能?我怎样才能写几个ClassA类似的类,以便在ClassB::changeList()运行时,我可以听它ClassA?

0 投票
1 回答
140 浏览

java - 如何使用 RxJava 在单个 Observable 上订阅多个观察者?

我有一个Observable<List<Event>>并且我希望这个 Observable 被多个订阅者共享。每个订阅者将过滤每个事件并对其进行处理。

Observable<List<Event>>已经以这种方式创建:

这是代码:

我努力了 :

newEvents.share()还有newEvents.publish()

尝试时:newEvents.create()我需要提供一个ObservableOnSubscribe对象,但我不明白如何获取它。

诀窍是什么?

0 投票
1 回答
129 浏览

java - 如何使用 RxJava 重复当

我试图了解如何repeatWhen在 RxJava 中使用。javadoc令人困惑,当我在网上搜索时有人建议使用如下

该代码return t.delay(1, TimeUnit.SECONDS);将使其永远持续下去。在主线程停止之前它不会停止。我想重复可观察但仅重复次数或直到特定不正确。

我很困惑。帮助表示赞赏。

0 投票
0 回答
169 浏览

java - Single.fromPublisher 订阅并映射到返回类型 reactivex java

使用 reactx 映射并返回方法中的值,如下所示

当我使用 .map 函数时,记录没有插入到数据库中,但是,在 .subscribe 方法上,记录已成功插入到数据库中。

但我想映射插入的记录并将值返回给消费者方法。

0 投票
1 回答
77 浏览

java - rxjava 结合了 2 个调用和错误处理,延迟失败

用例是,有两个数据源:

  1. 服务 1 - 从 source-1 获取
  2. 服务 2 - 从 source-2 获取

该应用程序应至少从 source-1 返回数据。如果 source-2 一切正常 - 数据将被“增强”,例如乘以 100。

服务 1 调用服务 2。

如果所有成功的用户都从服务 1 和服务 2 获取数据,如果服务 2 出现错误,则用户仅从服务 1 获取数据(至少)如果服务 1 出现错误 - 用户将收到错误。

有 hello-world-bench 代码可以模拟这种情况:


这段代码的结果是:

问题是:没有预期:value=200 2*100

然而,如果我在 service2.call() //.delay(10, TimeUnit.MILLISECONDS) 评论延迟,那么它会得到预期的结果:

问题是:为什么.delay(10, TimeUnit.MILLISECONDS) on service2.call()它不能产生 value=200 ?该解决方案有什么问题,我想念什么?

谢谢。

0 投票
0 回答
31 浏览

java - 将订阅的返回类型映射到其他类型

在 RXJava 中映射返回类型

现在返回类型是Disposable类型,是否可以转换为其他类型,例如Single<String>我尝试过的flatMapand MAP,但是当我订阅该方法时,它再次转换为Disposable