Kotlin RxJava2:映射器函数中是否允许链接?

Kotlin RxJava2:映射器函数中是否允许链接?,kotlin,rx-java,Kotlin,Rx Java,在下面的代码中,函数f返回Single println(“Error:$e”)映射内的错误将不会执行,但是我将能够在订阅服务器中打印错误。看起来不允许映射器函数中的链接。对吗?若有,原因为何 编辑:也尝试了flatmap,但结果相同 Observable.flatmap { line -> f(line).toObservable().doOnError { e -> println("Error:$e")

在下面的代码中,函数
f返回Single

println(“Error:$e”)
映射内的错误将不会执行,但是我将能够在订阅服务器中打印错误。看起来不允许映射器函数中的链接。对吗?若有,原因为何

编辑:也尝试了flatmap,但结果相同

   Observable.flatmap { line ->
              f(line).toObservable().doOnError { e ->
                    println("Error:$e")
                }
        }
        .subscribe({ record -> println(record) }, { e -> println("Error2:$e") })

这与预期的效果一样:

@测试
公开无效测试(){
可观察的。仅(1)
.flatMap(v->单个(v)
.TooObservable()文件
.doon错误(w->System.out.println(“Error2”+w))
)
.subscribe(v->System.out.println(v),e->System.out.println(“错误”+e));
}
单个(整数v){
返回Single.error(new IOException());
}
印刷品:

Error2 java.io.IOException
Error java.io.IOException

你忘了吗?我确实记得这个,但我不明白为什么需要它。从这里:-我了解到flatmap需要一个可以观察的函数,但map可以返回任何东西。我也尝试了flatmap,但结果相同。参见edit尽管我得到了@akarnokd的
Observable
而不是
ObservableThanks,但我的工作示例是错误的。我已经在其他地方隔离了这个问题,并在这里询问了问题:-嗯。。我实际上把代码改成了抽象代码。无论如何,这是产生错误的好方法。我道歉,因为我似乎已经从根本上消除了原因。我将很快发布代码,在那里我可以重现问题。这就是为什么您必须尝试您要发布的代码,以检查它是否仍然显示问题。如果没有,您可以在本地找出差异,并可能更快地发现原因。因此,我在一个在其客户机上封装rxjava的库中隔离了这个问题。我想我应该要求一个单独的。
Error2 java.io.IOException
Error java.io.IOException