[英]RxJava2: Is chaining allowed inside mapper function?
在下面的函數f returns Single<String>
的代碼f returns Single<String>
,
Observable.map { line ->
f(line).doOnError { e ->
println("Error:$e")
}
}
.subscribe({ record -> println(record) }, { e -> println("Error2:$e") })
映射內的println("Error:$e")
不會執行,但是我可以在訂戶中打印錯誤。 看起來不允許映射器函數內部的鏈接。 這是正確的嗎? 如果是,為什么?
編輯:也嘗試過平面圖,但結果相同。
Observable.flatmap { line ->
f(line).toObservable().doOnError { e ->
println("Error:$e")
}
}
.subscribe({ record -> println(record) }, { e -> println("Error2:$e") })
這按預期工作:
@Test
public void test() {
Observable.just(1)
.flatMap(v -> single(v)
.toObservable()
.doOnError(w -> System.out.println("Error2 " + w))
)
.subscribe(v -> System.out.println(v), e -> System.out.println("Error " + e));
}
Single<Integer> single(Integer v) {
return Single.error(new IOException());
}
打印:
Error2 java.io.IOException
Error java.io.IOException
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.