【发布时间】:2016-06-29 19:05:21
【问题描述】:
我想知道从 Observer 的 onNext 方法终止源 observable 的最佳方法是什么。
例如,我希望按钮事件仅在验证正常时发出一次。但是,当验证失败时,可以再次发出按钮事件。
我能想到的如下。
Observable....
.subscribe(new Subscriber(){
public void onNext(T t){
// do something and terminate the Observable
// only when the validate method return true
if (validate(t)){
doSomething(t);
unsubscribe();
}
}
...
});
但是,如果我需要一个 onCompleted 事件,它就不起作用。
此外,我不确定从观察者的onNext() 中调用onCompleted()
另外,我认为将验证带入 Observable 并不是一个好主意,因为 Observer 必须负责验证。 此外,在“Hot” Observable 的情况下,如果 observable 有一些观察者,则验证可能与每个 Observer 不同。
【问题讨论】:
标签: rx-java