Java 如果observable为空或null,如何停止处理
我正在尝试rxJava。我有一个处理从服务返回的Java 如果observable为空或null,如何停止处理,java,rx-java,observable,Java,Rx Java,Observable,我正在尝试rxJava。我有一个处理从服务返回的可观察的的操作符链 当返回的Observable为空(Observable.empty())时,我不想执行任何操作 我怎样才能做到这一点呢?就其本质而言,一个可观察的不发出任何值,然后完成(这就是可观察的.empty()所做的)将不会将任何值传递给您的订阅者或链的任何下游步骤 Observable<String> observable = Observable.empty(); observable .map( value ->
可观察的的操作符链
当返回的Observable
为空(Observable.empty()
)时,我不想执行任何操作
我怎样才能做到这一点呢?就其本质而言,一个可观察的不发出任何值,然后完成(这就是可观察的.empty()
所做的)将不会将任何值传递给您的订阅者或链的任何下游步骤
Observable<String> observable = Observable.empty();
observable
.map( value -> "Value " + value )
.doOnNext( value -> logger.info( "Value is " + value )
.subscribe();
标有(1)的行是应用超时的位置,标有(2)的行是使用空流导致可观察链终止的位置。请添加一些代码。当返回值为空可观察值时,您的doOnNext将永远不会执行,因此-您将什么也不做。因此,通过返回Observable.empty()您已经实现了无所作为
Observable<String> observable = Observable.never();
observable
.map( value -> "Value " + value )
.doOnNext( value -> logger.info( "Value is " + value )
.timeout( 1, TimeUnit.SECONDS ) // (1)
.onErrorResumeNext( Observable.empty() ) // (2)
.subscribe();