Rx java 带有Observable.just()和一个参数的RxJava平面映射
我使用的是RxJava,在理解flatMap时遇到了一个问题Rx java 带有Observable.just()和一个参数的RxJava平面映射,rx-java,Rx Java,我使用的是RxJava,在理解flatMap时遇到了一个问题 Observable.just(1) .flatMap( item -> Observable.just(item + 1), e -> Observable.error(e), () -> Observable.never())
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)
相同的代码,但带有
可观察的。仅(1,2,3)
很好
Got 2
Got 3
Got 4
这是一个bug还是为什么RxJava只使用一个参数就表现出不同的行为?
RxJava版本是1.0.13,这是1.0.13和1.0.14的一个bug。该补丁将在1.0.15版本中提供(尚未到期)。Odd。不会发生在1.0.12。可能值得报告的是,一个刚刚用1.0.12测试过的bug,它是有效的……提交了一个bug,所以,基本上,
flatMap
,一个只发射一个元素的源可见,目前不起作用?或者问题比这更具体?这种特定的flatMap
过载不适用于只是或目前不支持背压的其他来源。