带有Observable.just()的RxJava flatMap和一个参数

时间:2015-08-24 13:29:49

标签: rx-java

我正在使用RxJava,我有一个问题需要了解flatMap。

Observable.just(1)
                .flatMap(
                        item -> Observable.just(item + 1),
                        e -> Observable.error(e),
                        () -> Observable.never())
                .subscribe(
                        i -> {
                            Log.d(TAG, "Got " + i);
                        },
                        e -> {
                            Log.d(TAG, "RxJava ERROR", e);
                        });

失败
java.lang.NullPointerException: Attempt to invoke virtual method 'void rx.internal.operators.OperatorMapNotification$SingleEmitter.offer(java.lang.Object)' on a null object reference
at rx.internal.operators.OperatorMapNotification$1.onNext(OperatorMapNotification.java:82)
at rx.internal.util.ScalarSynchronousObservable$1.call(ScalarSynchronousObservable.java:46)
at rx.internal.util.ScalarSynchronousObservable$1.call(ScalarSynchronousObservable.java:35)
at rx.Observable$1.call(Observable.java:145)
at rx.Observable$1.call(Observable.java:137)
at rx.Observable$1.call(Observable.java:145)
at rx.Observable$1.call(Observable.java:137)
at rx.Observable.subscribe(Observable.java:7803)
at rx.Observable.subscribe(Observable.java:7579)

相同的代码,但有 Observable.just(1,2,3) 工作正常

Got 2
Got 3
Got 4

这是一个错误还是为什么RxJava只用一个参数表现不同? RxJava版本是1.0.13

1 个答案:

答案 0 :(得分:0)

这是1.0.13和1.0.14的错误。该修复程序将在1.0.15(尚未到期日)提供。