Rx Java仅订阅发出的一项

Mik*_*ail 2 java rx-java

我有一个BehaviorSubject data包含实际数据的文件(如果没有发出任何数据,则可能不包含任何数据)。我只想订阅它发出的一个项目,即当前的观察值或第一个从其他地方传递给它的值。我目前正在通过以下方式进行操作:

Subscription firstItemSubscription = data.subscribe(item -> {
    firstItemSubscription.unsubscribe();
    processItem(item);
});
Run Code Online (Sandbox Code Playgroud)

我可以代替使用任何运算符或变压器吗?还是可能有完全不同的,更多的Rx方法可以让我做自己想做的事情?

cyr*_*xis 5

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

Observable observable = //some observable

observable.take(1).subscribe(/* do your thing */);
Run Code Online (Sandbox Code Playgroud)