下面是我的代码片段。
我知道你不应该cachedFlowable这样阻止,但这只是一个例子。
它卡在了线上blockingGet。
如果我替换singleOrError为singleElement,代码仍然会卡住。如果我替换singleOrError为firstElement,代码将不再卡住。
有人可以向我解释为什么会出现这种情况吗?
public static void main(String[] args) {
final Flowable<Integer> cachedFlowable = Flowable.just(1).cache();
cachedFlowable
.doOnNext(i -> {
System.out.println("doOnNext " + i);
final Integer j = cachedFlowable.singleOrError().blockingGet();
System.out.println("after blockingGet " + j);
})
.blockingSubscribe();
}
萧十郎
相关分类