gpt4 book ai didi

java - rxJava 2 无法交付异常与线程池和 flatMap

转载 作者:行者123 更新时间:2023-11-30 10:27:56 26 4
gpt4 key购买 nike

subscribeOnflatMap 结合使用时,我得到了一个 UndeliverableException。这个最小的例子说明了这个问题:

@Test
public void flatMapException() throws ExecutionException, InterruptedException {
SettableFuture<Boolean> f = SettableFuture.create();

Observable.just(1,2).flatMap(x -> {
return Observable.just(1).flatMap(z -> {
if (z == 1) return Observable.error(new IOException("haha"));
return Observable.just(1);
}).subscribeOn(Schedulers.computation());
}).onErrorReturnItem(1).subscribeOn(Schedulers.computation()).subscribe(
x -> {},
e -> {
f.set(true);
}, () -> {
f.set(true);
});

assertEquals(true, f.get());
}

我预计在触发第一个错误后 Observable 会停止运行并取消订阅。

我只想在第一个 Observable 成功完成后订阅 flatMap 返回的第二个 Observable。

我如何用 RxJava 表达我的意图?

最佳答案

这似乎可行:

Observable.just(1, 2, 3)
.map(x -> Observable.error(new Exception("e" + x)))
.compose(xs -> Observable.concat(xs));

关于java - rxJava 2 无法交付异常与线程池和 flatMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45008365/

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