Tag: take

RxJava2 observable抛出UndeliverableException

据我所知,RxJava2 values.take(1)创建了另一个Observable,它只包含原始Observable中的一个元素。 哪个不能抛出exception,因为它被take(1)的效果过滤掉,因为它发生在第二个。 如下面的代码片段所示 Observable values = Observable.create(o -> { o.onNext(1); o.onError(new Exception(“Oops”)); }); values.take(1) .subscribe( System.out::println, e -> System.out.println(“Error: ” + e.getMessage()), () -> System.out.println(“Completed”) ); 产量 1 Completed io.reactivex.exceptions.UndeliverableException: java.lang.Exception: Oops at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:366) at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onError(ObservableCreate.java:83) at ch02.lambda$main$0(ch02.java:28) at io.reactivex.internal.operators.observable.ObservableCreate.subscribeActual(ObservableCreate.java:40) at io.reactivex.Observable.subscribe(Observable.java:10841) at io.reactivex.internal.operators.observable.ObservableTake.subscribeActual(ObservableTake.java:30) at io.reactivex.Observable.subscribe(Observable.java:10841) at io.reactivex.Observable.subscribe(Observable.java:10827) at io.reactivex.Observable.subscribe(Observable.java:10787) at ch02.main(ch02.java:32) Caused by: […]