问题标签 [rx-kotlin2]

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 回答
31 浏览

android - 在 onNext 之前对 observable 中的每个项目执行非转换操作

我附加了一个可以从多个视图模型调用的函数,我试图在将这个可观察对象返回给视图模型之前将每个“餐厅”存储到数据库中的中央函数中。

我是 rxandroid 的新手,我想知道是否有办法在 subscribe() 中的最终 onNext() 之前对每个项目执行非转换和非消耗操作。

(类似于下面的 doOnEach() ):

到目前为止,我发现的两个解决方案是:

  1. 当在 flatMap() 中提取“Restaurants”列表时,RestaurantOuterResponse 中有一个函数来保存所有值。
  2. 在每个单独的 viewModel 中调用 onNext() 中的 ADBConnection.storeRestaurant(restaurant)。

这些都不是很好的解决方案,我建议的方向正确吗?或者,还有更好的方法?

0 投票
2 回答
666 浏览

android - 单一原因导致主线程上的网络或来自错误线程异常的查看根

使用简单的 RxKotlin Single,我会收到android.view.ViewRootImpl$CalledFromWrongThreadException异常,或者通过添加.observeOn(AndroidSchedulers.mainThread()),我会收到NetworkOnMainThread异常。

我可以让 staffList 在控制台中打印,但是一旦我尝试将它加载到 View 的适配器中,它就会因 CalledFromWrongThread 异常而崩溃。

所以这是我添加时的崩溃.observeOn(AndroidSchedulers.mainThread()):

无需在任何地方进行额外的网络调用。这是其余的:

改造 API:

0 投票
1 回答
183 浏览

java - RxJava2 中 onBackpressureBuffer 的行为是什么

我想要做的是拥有一个带有背压缓冲区的 Flowable,该缓冲区保留从流中生成的最新项目。

我尝试使用 Flowable.onBackpressureBuffer(1, () -> {}, BackpressureOverflowStrategy.DROP_OLDEST)。但是,它并没有像我预期的那样工作

我期望的输出是一个整数序列,不一定是连续的,应该包括最后一项 9,999。但是,它只打印前几个连续的数字,例如 0、1、2、3、4...,每次都不同,但不是最后一个数字 9,999。

0 投票
1 回答
45 浏览

rx-java2 - 如何处理多单?

我正在使用 rxjava2 存根在 grpc 上编写信使服务器,并且我坚持结合我的单曲。

我已经尝试过某种

与所有示例相比,它看起来如此不美观,那么有没有办法将所有这些单曲组合成一条线?

0 投票
1 回答
257 浏览

android - 我们是否需要在活动的 onDestroy() 方法中调用主题的 onComplete() ?

如果在 ActivityA 中,它保持引用

我们是否需要在Activity的onDestroy()方法中调用主体的onComplete()方法

0 投票
1 回答
65 浏览

android - Observable 返回相同值的列表

我正在创建一个用于跌倒检测的应用程序,并且我正在尝试实现 RxKotlin 来做到这一点。为了提供良好的数据处理,我每 250 毫秒获取一次 sesnorEvent 并将其放入缓冲区(最后 10 秒)。不幸的是,当我移动手机时,缓冲区中的全部数据都是同一个事件。是我的代码中的问题还是它只是这样工作?

我已经尝试使用窗口和缓冲区,但是结果是一样的。应用的目标 API 为 28,最小 API 21。 SensorListener 放置在前台服务中

我希望 observable 的输出类似于 [11.234473, 9.768473, 13.23543],但是,我得到 [9.768473, 9.768473, 9.768473]。要点是,在缓冲区生命周期内移动手机后,缓冲区中的值应该不同,但事实并非如此。

0 投票
3 回答
3510 浏览

android - 如何使用 Rxjava 进行长时间运行的后台任务

我正在使用 rxjava 将一些任务上传到服务器,每当任务启动的片段或活动被破坏时,我都会处理订阅以避免内存泄漏,但我想要的是即使在片段/活动被破坏后我需要继续运行任务背景,有什么办法可以做到这一点?

例子

是否必须始终处置订阅?如果不是什么时候使用 dispose ?

0 投票
1 回答
184 浏览

rx-java2 - 如何使用来自另一个可观察 rx kotlin 的结果过滤可观察发出的列表?

假设我有一个数字列表和 observable 的来源,它可以评估该列表中的每个数字。(需要使用以下方法。它们是我必须使用的 API 的一部分)

假设源看起来像这样:

有趣的 getOddChecker(i: Int) : Observable = Observable.just(i%2== 0)

在流的末尾,我需要有奇数列表。所以我做了那个代码:

上面代码的输出:

上面的代码做了我想要的,但我必须使用Pair类。那个部分

似乎不太可读。那么是否有任何运营商女巫可以简化该代码?

0 投票
1 回答
125 浏览

android - What is the problem of adding .dispose() after .subscribe()

After going through some discussions about when to dispose a CompositeDisposable, I wonder why we can't just add a .dispose() after .subscribe() in code.

What is actually happen if the code is like this? Is it ok to write like this? (instead of .addTo(compositeDisposable))

0 投票
1 回答
672 浏览

android - Schedulers.io() 在我的单元测试中抛出 NullPointerException

我正在尝试为下面使用RxJava/RxKotlin的 ViewModel 的方法创建单元测试

但是当在测试方法中调用Schedulers.io()时,它会抛出 NullPointerException。

我尝试在下面使用这种方法:

https://medium.com/@dbottillo/how-to-unit-test-your-rxjava-code-in-kotlin-d239364687c9(创建规则)

https://medium.com/@PaulinaSadowska/writing-unit-tests-on-asynchronous-events-with-rxjava-and-rxkotlin-1616a27f69aa(将调度程序传递给 ViewModel)

在这两种方法中,它都说在测试方法中使用Schedulers.trampoline() 。但它仍然抛出错误。

我没有选择,无法弄清楚为什么会发生这种情况。

有人能帮我吗?

谢谢。