问题标签 [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 回答
42 浏览

rx-java - 将平面图与分组的 observables 一起使用

我是 RxJava 的新手,并试图理解它。我有以下来源:

这将打印作为评级的键,但我无法打印值。
可以使用flatMap吗?

0 投票
1 回答
33 浏览

rx-java - flatMap 和 flatMap single 用于分组的 observables

我是 RxJava 的新手,并试图理解它。我有以下来源:

这种方法打印键和相关的值。
如果我做:

它似乎打印了与键关联的值列表。
但是具体是如何flatMapSingle工作的呢?有什么区别flatMap

0 投票
1 回答
142 浏览

java - 为什么 subscribeOn 对 Rxjava 中的 PublishSubject 没有影响?

这是我在 Kotlin 中的测试代码:

我正在尝试在不同的 IO 线程中运行map块和块。subscribe's onNext但是输出是这样的:

如您所见,似乎调用对流subscribeOn没有影响,PublishSubject's并且thread-0,thread-1 and thread-2是指调用onNext方法的线程。

另外考虑下面的代码:

我写了上面的代码,看到没有输出输出。但是如果我subscribeOn从流中删除,消息会按如下顺序打印:

这些代码有什么问题?谢谢。

0 投票
2 回答
92 浏览

android - 具有块体('{...}')的函数中需要一个'return'表达式

我想在 CampaignRepositoryImpl.kt 类的 getCampaigns 函数中使用 rxjava3 调用 api,但我收到以下错误错误A 'return' expression required in a function with a block body ('{...}')

在 CampaignRepositoryImpl.kt 类下面

在我的接口类下面我得到 API 调用

在 CampaignRepository 下方

接口 CampaignRepository {

}

在我的 CompaignResponse.kt 下面

在Campaings元数据下方

以下

在 CampaignDto 下方

我想知道我在哪里犯了错误我必须做什么以避免错误

0 投票
0 回答
13 浏览

android - Single Rx Java 在可拖动的 Reyclerview 中显示双数据

在回收视图中使用 Singles 时遇到问题,可以拖动视图。

我有一个带有不同类型的视图的recyclerview。每个查看器显示不同的内容。在我的两个视图中,通过使用 Single (Rx Java) 发出数据来显示数据。这个rec​​yclerview也是可拖动的,这意味着viewholders可以改变他们的位置。我的问题是,当我拖动使用 Single ( Rx Java ) 的视图时,数据将显示两次,分别在视图的旧位置和新位置。

我需要的是要从查看器所在位置删除的数据,并且只显示在被拖动到的位置!

我尝试在从某个位置删除视图时处理可观察对象,然后在再次创建视图时再次创建/订阅它。

我还尝试在从某个位置删除视图时取消订阅可观察对象,然后在再次创建视图时再次订阅它。我尝试过的两件事都没有奏效。

我能做些什么来解决它?任何帮助表示赞赏。

0 投票
0 回答
55 浏览

java - 使用 RxJavaErrorHandler 进行全局错误处理

我有以下引发异常并希望在全局级别捕获该异常的方法

根据 reactx 文档http://reactivex.io/documentation/plugins.html

为此,请扩展class RxJavaErrorHandler并覆盖此方法:

我正在使用带有 java 的 micronaut 应用程序并具有以下依赖项

并尝试了下面的代码

无法导入 RxJavaErrorHandler

在寻找解决方案时,许多示例中都使用了以下代码

但是,在 RxJavaPlugins 中找不到 getInstance().registerErrorHandler

0 投票
1 回答
35 浏览

android - RxJava PublishProcessor 默认是否关心背压?

我想了解更多关于 RxJava PublishProcessor 的信息。它是默认处理背压还是我们应该通过 onBackPressure 函数添加这个行为?

0 投票
0 回答
26 浏览

android - 如何从 LiveDataReactiveStreams 中清除数据

我正在使用 RxJava3 从 Firestore 读取数据并通过 LiveDataReactiveStreams 将其转换为 LiveData。我有食物清单,点击食物我想加载有关该特定食物的详细信息。问题是,当用户单击一个项目并加载它时,在单击第二个项目后,他会从前一个项目中获取值一秒钟,直到加载新数据。我注意到我的存储库中的流总是触发新的点击并返回以前的数据,但我想显示新项目的第一个加载状态,然后显示该加载的项目。我将如何防止它返回以前的值,或清除 LiveData?

存储库

视图模型

0 投票
2 回答
400 浏览

java - RXJava 的问题

我正在改编一些来自三词地址的示例代码,以便通过他们的 Java SDK 访问他们的 API。它使用 RXJava。

示例代码是:

首先。这会在构建时发出弃用警告并发出 IDE 警告 ( Result of 'Observable.subscribe()' is ignored)。

为了解决第一个问题,我Disposable myDisposable = Observable. 这个对吗?(添加位置见下文)

接下来我需要添加一个超时,以便在请求超时时可以显示警告等。为此,我已添加.timeout(5000, TimeUnit.MILLISECONDS)到构建器中。

这行得通,但timeouts 似乎对Observables 起作用的方式是它们抛出异常,我不知道如何捕获和处理该异常。

我现在拥有的是:

这构建并运行良好,并且未显示 API/弃用警告,但是当没有可用网络时,此正确超时并引发未处理的异常。

所以,代码似乎是正确的,但究竟如何添加异常处理来捕获TimeoutException抛出的超时?

我已经尝试了很多东西,包括:try-catch在整体周围添加一个子句Observable- 这会警告TimeoutException`try; 中的代码不会抛出该警告;并添加一个错误处理程序。

添加错误处理程序让我最接近,所以下面的代码是我所得到的:

这会正确捕获超时并更新我的 UI 而不会出错,但是当网络恢复时,似乎 Observable 可能正在尝试返回并引发空指针异常。

(更新,无论网络是否恢复,这个NPE实际上可能会在短时间内被抛出......但它总是在网络恢复时抛出。)

我得到FATAL EXCEPTION: RxCachedThreadScheduler-1并且java.lang.NullPointerException: Callable returned a null value. Null values are generally not allowed in 3.x operators and sources.

我是否需要销毁Observable或其他东西来防止 NPE?

0 投票
0 回答
31 浏览

android - 如何使用Retrofit前台服务异步工作Rxjava3

我想在前台服务中使用retrofit和rxjava 3提取异步json数据并将其作为通知显示给用户,但到目前为止我还没有成功。

我以这种方式查看了不同的示例,它们没有使用非常不同的结构,但我不明白为什么不进行异步调用。

感谢您的帮助