Original beobachtbar ------ a ------- b ------- c ---------- d --------> ... .
abgebildet beobachtbaren ----- A ------- B (Ende)
einfachen Code wie folgt aus:Wie man ein kartiertes Observable mit der Spezifikationsbedingung bei RxScala/Java abbricht?
val original = Observable.just('a', 'b', 'c', 'd')
val mapped = original.map(x => x.toUpper)
//how to let `mapped` Observable stop emit event when received 'b' from original?
//do something
mapped.subscribe(x => println(x)) //make it only print A ,B
wie bei B
diese angeben Zustand beendet beobachtbaren abgebildet machen?
UPDATE für takeUntil Methode
takeUntil
scheint eine Standard-Antwort, aber meine editer zeigt diese Methode Observable[Any]
als paramter.See Definition nehmen Sie bitte,
def takeUntil(that: Observable[Any]): Observable[T]
wenn ich folgt Code verwenden
val original = Observable.just('a', 'b', 'c', 'd').takeUntil(x => x == 'b')
ein Kompilierfehler ist aufgetreten
Verwenden wir ein gleiches Paket? Meine sbt-Abhängigkeit ist "com.netflix.rxjava" % "rxjava-scala" % "0.20.7"
'original.takeUntil (x => x == 'b') map (..). Subscribe (..)' –
@peeskillet, deins ist sehr unterschiedlich mit meiner Definition von 'takeUntil' Methode.Es ist sehr peinlich ... Ich habe das Problem auf meine Frage aktualisiert. Schau nochmal bitte. – LoranceChen
Ich denke, es ist die Version. Ich schaue mir das Javadoc für rx-java an, und es sagt das [takUntil (Func-Prädikat)] (http://reactivex.io/RxJava/javadoc/rx/Observable.html#takeUntil%28rx.functions.Func1) % 29) wird erst am 1.1.0 eingeführt. Ich denke, 'takeUntil (Observable)' ist eine ältere Methode. Ich weiß nicht, wie diese Version mit rx-scala Version übereinstimmt, ich habe nie rx.scala verwendet –