gpt4 book ai didi

android - RxJava startsWith 运算符在与 observeOn 结合时被忽略

转载 作者:太空狗 更新时间:2023-10-29 16:26:36 28 4
gpt4 key购买 nike

我有一个像这样的简单流:

Observable.error<Int>(Exception()).startWith(1).subscribe {
println("Item is $it")
}

一切都按预期进行。首先使用整数 1 调用 onNext 然后抛出异常,但是当我通过添加 observeOn 来更改流时:

Observable.error<Int>(Exception()).startWith(1).observeOn(AndroidSchedulers.mainThread()).subscribe {
println("Item is $it")
}

onNext 永远不会被调用。仅抛出异常。我在这里缺少什么?

最佳答案

来自observeOn文档

Note that onError notifications will cut ahead of onNext notifications on the emission thread if Scheduler is truly asynchronous.

这意味着当你应用它时,onError 首先被触发,因此 onNext 不会被调用,因为流已经由于 onError 而结束。

您可以执行以下操作以首先接收 onNext

observeOn(AndroidSchedulers.mainThread(), true)

这告诉 Observable 延迟错误直到通过 startWith 的 onNext

关于android - RxJava startsWith 运算符在与 observeOn 结合时被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49554485/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com