问题标签 [rx-kotlin]
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.
android - AndThen 在完成之前执行
让我们采用 Rx 编写的两种方法:
当我们检查Foo的本地存储时,我想写一个链。如果我们没有任何Foo,我们应该从网络中获取它,然后将其保存到本地存储中,然后再次从本地存储中获取它并将其传递给我们的订阅者。
问题是在可andThen
完成传递到flatMapCompletable
. 我发现如果我换成Maybe.defer{}
. 但是根据andThen
它的文档
返回
Maybe
将订阅此 Completable 的 a。
也许已经
表示可能值或异常的延迟计算和发射
所以问题是为什么我的andThen
部分在完成之前运行。编写这种链的最佳和优雅的方式是什么。
通话记录:
reactive-programming - 在 zipWith 中使用范围还会在应用拉链功能之前从范围序列中发出所有项目
问题是关于 RxJava2。
Throwable
请注意,来自retryWhen
with 的zipping会在应用 zipper 功能之前range
发出所有项目。Observable.range
此外,range
即使zipWith
没有被调用,也会发出序列。例如这个源代码
给出以下结果
onError
在创建中替换observable
也不会消除发射range
项目。所以问题是为什么它会像Range
冷一样发生。
rx-java - 如何在 RxJava2 中静默跳过异常?
我有这样的数据流:
我已将业务逻辑(实际上返回Future
s)替换为CompletableFuture.supplyAsync
. 而且,是的,这就是 Kotlin,但我猜你明白了。
当我评论“死”值(57005
, 0xDEAD
)时,输出为:
但是,如果该“死”值出现在流中,它将失败:
我是 RX 的新手,所以很快用谷歌搜索了一个解决方案:onExceptionResumeNext
: Observable.fromFuture(it)
--> Observable.fromFuture(it).onExceptionResumeNext { Observable.empty<Int>() }
。但是现在我的应用程序永远挂起(在产生我期望的输出之后)。看起来流永远不会结束。
我应该Observable
以某种方式“关闭”它还是什么?或者,更一般地说,在使用 RX 时这是一个好方法吗?我应该以另一种方式重新考虑吗?
java - 对集合中每个项目的异步调用
我有一个到目前为止我无法解决的问题我是 RxKotlin 的新手,所以它可能很容易。请看一下代码:
其中stream是我们自制的集合。Map 是一种允许您遍历该集合中的每个项目的方法。
这里的问题是
是一个 http 调用,它返回一个不理想的 Single。
我想在 map 中创建一个异步调用,该调用将返回 Item 而不是 Single,然后将其传递给 ClientInfo。到目前为止,我尝试过的是在地图内使用订阅并使用 blockingGet() 方法,但这会阻塞主线程,即使我在不同的线程上观察和订阅
所以它涉及对集合中的每一件事进行异步调用。
感谢帮助
android - 如何在 RxJava 流中间有条件地添加异步操作?
这是我正在尝试做的简化版本(使用 Kotlin 和 RxJava)
如何挤入调用asyncOperation()
并使流的其余部分等待其回调触发,但仅在满足特定条件时?这看起来可能是 Rx 中的一个微不足道的操作,但没有明显的解决方案浮现在脑海中。
android - 使用 RxKotlin 获取 NetworkOnMainThreadException
我正在尝试使用 RxKotlin 发出网络请求,但不断收到NetworkOnMainThreadException
我正在订阅主线程的消息,所以我不确定为什么它没有将其从 UI 线程中移除。
这是我订阅 Observable 的地方
这是我创建 Observable 的地方
java - Spring 5 和 Kotlin 1.1 协程:类型 rx.Scheduler 不存在
我正在使用带有 Spring-context 5.0.0.RELEASE 的 Kotlin 1.1.4-3。
在启动项目时,我收到此错误:
似乎 spring 正在寻找rx.Scheduler
类,但它不在类路径中。很明显rx.Scheduler
没有添加相应的依赖。但我在互联网上找不到任何相关的东西。
我将 RxJava2 ( io.reactivex.rxjava2
) 添加到项目中,但它不起作用。我能做些什么?
最终答案 - 基于 Rafal G. 回复:
这个错误是因为使用了 konrad-kaminski/spring-kotlin-coroutine库。但是,我在我的项目中使用了这些依赖项:
android - 添加 subscribeOn() 正在改变 observable 的返回类型
我遇到了一个我很难理解的奇怪问题。我编写了一些从可调用对象创建可观察对象的代码。它编译得很好,但是一旦我为它指定了一个调度程序,它就会改变返回类型并且不会编译。
这是没有 subscribeOn 的代码(编译):
这是带有 subscribeOn 的代码(无法编译):
编译时错误消息是:
当然,指定调度程序不应该改变返回的类型?有任何想法吗?
kotlin - 创建 Kotlin 对象的新实例
我有一个对象QuickSort,我正在尝试创建 2 个实例。当我尝试创建 2 个单独的实例时,我可以看到它只使用一个实例,因为我在QuickSort类中有一个不准确的计数。Kotlin 在语法中不使用new,那么我该怎么做呢?
这是我尝试创建 2 个实例的方式。我的目标是让quickSort1和quickSort2成为 2 个单独的实例。
尝试的解决方案:将QuickSort从对象转换为类。这仍然导致使用相同的实例,如第二个方法的计数(包括第一次调用计数)所见。
...
generics - 如何从通用 observable 订阅 PublishRelay?
科特林代码:
以上是我正在尝试将其转换为 Swift 的 Kotlin 代码。但是,我遇到了一个错误,说无法将“PublishRelay”类型的值转换为预期的参数类型“(Event<_>) -> Void”
SWIFT代码:
任何帮助,将不胜感激。