Ich frage mich, was ist der beste Weg, um die beobachtbare Quelle von Observer OnNext-Methode zu beenden.Wie man die beobachtbare Quelle von Observer onNext-Methode
Zum Beispiel möchte ich, dass eine Schaltfläche Ereignis nur einmal emittiert, wenn die Validierung in Ordnung wäre. Wenn die Validierung jedoch fehlschlägt, kann ein Schaltflächenereignis erneut ausgegeben werden.
Was ich mir vorstellen kann, ist unten.
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();
}
}
...
});
Wenn ich jedoch ein onCompleted-Ereignis benötige, funktioniert es nicht. Außerdem bin ich nicht sicher, ob onCompleted()
von Observer onNext()
auch nennen, denke ich, dass die Validierung zu bringen in beobachtbare keine gute Idee wäre, da Beobachter die Verantwortung für die Validierung haben muss. Darüber hinaus kann die Validierung im Fall von "heiß" beobachtbar von jedem Beobachter abweichen, wenn die beobachtbare Person einige Beobachter hat.
Vielen Dank für Ihre Antwort! Ich kannte den Operator, aber ich konnte diese Idee nicht verstehen. Da die Quelle des Observablen ein Objekt war, zwang ich mich, ein Observables zu verwenden, um die unterschiedliche Validierung jedes Beobachters zu handhaben. In diesem Fall kann ich jedoch einige Observables erstellen. Der schwierigste Teil der Verwendung von Rx könnte sein, flexibel zu denken, denke ich. Nochmals vielen Dank !! – otal