исходная наблюдаемая ------a-------b-------c----------d-------->....< br> отображаемый наблюдаемый -----A-------B(finish)
Простой код:
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
Как сделать отображаемый наблюдаемым завершенным в B
этом указанном условии?
ОБНОВЛЕНИЕ для метода takeUntiltakeUntil
кажется стандартным ответом, но мой редактор показывает, что этот метод принимает Observable[Any]
в качестве параметра. См. определение, пожалуйста,def takeUntil(that: Observable[Any]): Observable[T]
если я использую следующий код
val original = Observable.just('a', 'b', 'c', 'd').takeUntil(x => x == 'b')
произошла ошибка компиляции
Error:(74, 64) missing parameter type
val original = Observable.just('a', 'b', 'c', 'd').takeUntil(x => x == 'b')
^
Используем ли мы один и тот же пакет? моя зависимость sbt "com.netflix.rxjava" % "rxjava-scala" % "0.20.7"
takeUntil
сильно отличается от вашего. Это очень неудобно ... У меня возникла проблема с моим вопросом. Посмотрите еще раз, пожалуйста. - person LoranceChen   schedule 26.03.2016takUntil(Func predicate)
появился только в версии 1.1.0. Я предполагаю, чтоtakeUntil(Observable)
- более старый метод. Я не знаю, как эта версия совпадает с версией rx-scala, я никогда не использовал rx.scala. - person Paul Samsotha   schedule 26.03.2016