ObserverのonNextメソッドからソースobservableを終了させる最良の方法は何ですか?ObserverのonNextメソッドからソースobservableを終了する方法
たとえば、ボタンイベントは、検証が正常になると1回だけ発生するようにします。ただし、検証が失敗すると、ボタンイベントが再び発生する可能性があります。
私は以下のことが考えられます。
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()
を呼び出すことについてはよく分からない はまた、私はオブザーバーは、検証の責任を持たなければならないので、観察可能に検証を持参することは良い考えではないだろうと思います。 また、 "Hot" Observableの場合、観測値にオブザーバがある場合、検証は各オブザーバと異なる場合があります。
ありがとうございました!私はオペレータを知っていたが、私はこの考えを得ることができなかった。観測可能な情報源は1つのオブジェクトであるため、各観測者の異なる検証を処理するために、1つの観測情報を使用するようにしました。しかし、この場合、私はいくつかの観測値を作成することができます。 Rxを使うのが最も難しいのは柔軟に考えることかもしれないと思います。再度、ありがとうございます! – otal