Rx Java仅订阅发出的一个项目

Rx Java仅订阅发出的一个项目

问题描述:

我有一个BehaviorSubject data,其中包含实际数据(或者没有任何内容,如果没有发送到它)。我只想订阅它发出的一个项目,即要么是当前观察值,要么是从其他地方传递给它的第一个项目。我目前按照以下方式进行:Rx Java仅订阅发出的一个项目

Subscription firstItemSubscription = data.subscribe(item -> { 
    firstItemSubscription.unsubscribe(); 
    processItem(item); 
}); 

是否有我可以使用的操作员或变压器?或者可能有完全不同的,更多的Rx方法,可以让我做我想做的事情?

是使用只需要使用take(1)

Observable observable = //some observable 

observable.take(1).subscribe(/* do your thing */);