- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经创建了 rx 函数来从 android 中的 view-model
调用网络调用,它在主线程函数上解析网络。
我只是更改了几行它起作用的代码。但我需要知道这样做的原因,因为它使用相同的构建器模式来创建 rx-call
。一旦我尝试更改 .doOnSubscribe()
, doOnComplete ()
, .applySchedulers()
在平面图调用之后它起作用了吗?这是怎么发生的?
fun loadjobs(var countryID:String){
subscription.add(
repository.getMainJobsFromLocal(countryID)
.doOnSubscribe { postProgress(StatusModel(Status.IN_PROGRESS))}
.doOnComplete { postProgress(StatusModel(Status.COMPLETED)) }
.applySchedulers()
.flatMap {
if (it.isNullOrEmpty()) {
repository.getMainJobsFromServer(countryID)
} else {
Flowable.just(Response.success(it))
}
}
.subscribe({
if (it.isResponseOk()) {
postProgress(StatusModel(Status.SUCCESS))
mainJobResponse.postValue(it.body())
} else {
postProgress(StatusModel(Status.FAILED))
mainJobResponse.postValue(null)
}
}, {
postProgress(StatusModel(Status.FAILED))
mainJobResponse.postValue(null)
}))
}
fun loadjobs(var countryID){
subscription.add(
repository.getMainJobsFromLocal(countryID)
.flatMap {
if (it.isNullOrEmpty()) {
repository.getMainJobsFromServer(countryID).flatMap {
Flowable.just(it)
}
} else {
Flowable.just(Response.success(it))
}
}.doOnSubscribe { postProgress(StatusModel(Status.IN_PROGRESS)) }
.doOnComplete { postProgress(StatusModel(Status.COMPLETED)) }
.applySchedulers()
.subscribe({
if (it.isResponseOk()) {
postProgress(StatusModel(Status.SUCCESS))
mainJobResponse.postValue(it.body())
} else {
postProgress(StatusModel(Status.FAILED))
mainJobResponse.postValue(null)
}
}, {
postProgress(StatusModel(Status.FAILED))
mainJobResponse.postValue(null)
}))
}
最佳答案
applySchedulers() after the flatmap call it worked? how is this happened?
observeOn()
影响下游的一切。如果在 observeOn()
之后有一个 flatMap()
,它将在该调度程序上执行。
同样 subscribeOn()
影响上游链。
出于这些原因,对于大多数用例,您希望在 rx 链的末尾而不是中间应用调度程序。
关于android - 改造 - android.os.NetworkOnMainThreadException 与 RxKotlin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58795905/
我以为这是工作原理,好像我丢失了一些东西。 @Test fun singleCompletes() { val testSubscriber = TestSubscriber() Si
这永远不会完成: Completable.complete() .andThen{ Completable.complete() } .test() .
我将使用线程执行器与 rxkotlin 一起做一些后台工作,我将线程池大小固定为 3,但我的问题是在我的后台操作期间它只使用了 3 个中的一个线程,这减慢了我的后台操作 执行者类 class Thr
1)下面的代码无法编译并出现错误:“没有足够的信息来推断类型变量R” keywordChanges .withLatestFrom(searchParamsSubject) .subscrib
以下代码是我尝试将 RxJava 示例转换为 Kotlin 的示例。它应该收集一堆 Int变成了MutableList ,但我遇到了很多错误。 val all: Single> = Observabl
我刚开始使用 rx kotlin,还没有完全理解。我正在尝试遍历查询列表,并一个一个地执行它们。在这个列表中,我有一个特殊的字符串,一旦到达,我想打破循环并执行另一个功能 我怎样才能在下面的例子中做到
我有这个函数,它获取一个参数并首先检查它的值。如果它为空,则从返回 Single 的 fisrtFun() 的结果中获取它的值。 在该参数是否为 null 之后,它返回将参数作为输入的 secondF
我有以下调用来从服务器检索一些数据并根据响应更新 UI。 poiAPIService.getPoiDetails(poiId!!) .observeOn(Android
rxjava2 依赖和rxkotlin 依赖有什么区别。 如果我正在使用 rxkotlin 依赖项,我是否需要添加 rxjava2 依赖项。 implementation 'io.reactivex.
为什么我要使用 Kotlin 的协程? 似乎 RxKotlin 库更加通用。 相比之下,Kotlin 的协程看起来明显不那么强大,而且使用起来更麻烦。 我对协程的看法基于 this design ta
因为 sealed 就像枚举对象,所以我决定使用 sealed 类进行网络响应,如果它包含成功或失败,如果成功则它包含数据,否则错误消息 示例 sealed class Result {
我正在尝试使用以下方法在主线程上观察可观察到的: // Kotlin Code Observable .observeOn(AndroidSchedulers.mainTh
我正在尝试使用两个不同的超时值来运行示例。第一次发射的初始值较大,然后所有后续发射的值较小。该示例从 RxJava v1x 的 Java 转换为 Kotlin,尽管我尝试这是 v2x(不确定这是否有任
我正在将一些 Java 代码转换为 Kotlin,但在使用 flattenAsObservable() 时遇到了一些问题 Java 中的代码如下所示: discogsInteractor.search
我已经创建了 rx 函数来从 android 中的 view-model 调用网络调用,它在主线程函数上解析网络。 我只是更改了几行它起作用的代码。但我需要知道这样做的原因,因为它使用相同的构建器模式
我有一个 Category数据类和一个 Plan数据类。每个Category有一个计划 ID 列表。通过 Room 存储了类别和计划。我正在尝试构建本地 List我将每个类别添加到列表中,然后添加每个
目前我正在使用 RxKotlin 在 Kotlin 中构建一个项目。我的 Rx 背景主要基于 RxJS。 我经常用于在 Typescript 中创建热可观察对象的模式看起来类似于: private
我是 rxjava/rxkotlin/rxandroid 的初学者。 我需要按顺序处理三个不同的异步调用。问题是第一步返回 Single ,第二个Completable第三个又是Completable
Observable.just(1) .flatMap(object : Function> { override fun apply(inte
这是一个 kotlin Activity ,它应该显示事件列表(来自 sample.json) class TalksActivity : AppCompatActivity(), TalkAdapt
我是一名优秀的程序员,十分优秀!