RxJava FlatMap:如何跳过错误?

Ale*_*xey 8 java rx-java

在链obs1.flatmap(x -> obs2()).subscribe(sub)是否obs2会产生一个错误,它会导致立即调用onErrorsub.这是记录在案的:

请注意,如果通过flatMap映射到源Observable中的项的任何单个Observable都通过调用onError中止,则flatMap生成的Observable将自行立即中止并调用onError.

但是有可能忽略obs2错误并obs1继续发射吗?

Geo*_*izy 11

Rx为一些运营商提供了处理错误的方法.只需从obs2创建第三个Observable,它不会传播错误.

Observable<YourType> obs3 = obs2.onErrorResumeNext(Observable.<YourType>empty());
obs1.flatmap(x -> obs3)
Run Code Online (Sandbox Code Playgroud)


Nik*_*che -2

难道你不能在里面创建一个大的try-catch博客obs2()并将catch博客留空吗?不会抛出任何错误,因此不会调用onErrorof ,不是吗?sub