Java 如果observable为空或null,如何停止处理

Java 如果observable为空或null,如何停止处理,java,rx-java,observable,Java,Rx Java,Observable,我正在尝试rxJava。我有一个处理从服务返回的可观察的的操作符链 当返回的Observable为空(Observable.empty())时,我不想执行任何操作 我怎样才能做到这一点呢?就其本质而言,一个可观察的不发出任何值,然后完成(这就是可观察的.empty()所做的)将不会将任何值传递给您的订阅者或链的任何下游步骤 Observable<String> observable = Observable.empty(); observable .map( value ->

我正在尝试rxJava。我有一个处理从服务返回的
可观察的
的操作符链

当返回的
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();