Допустим, у нас есть источник Observable из Ints:Как произвести наблюдаемую из другого
val source:Observable[Int]
Я хотел бы создать еще Observable, производя значения, разность в первой появилось значение в источника больше 10 :
def detect() = Observable[Int](
subscriber =>
if (!subscriber.isUnsubscribed) {
var start:Option[Int] = None
source.subscribe(
item => {
if (start.isEmpty) {
start = Option(item)
}
else {
start.filter(v => Math.abs(item - v) > 10).foreach {
item => subscriber.onNext(item)
}
}
}
)
subscriber.onCompleted()
}
)
Здесь я использовал вар начать провести первое значение из источника наблюдаемых.
Есть ли способ упростить этот код? Мне не нравится этот подход с присвоением значения var
Как перенести первое значение источника? Я сравниваю каждое следующее значение источника с первым значением – Nyavro
А, я неправильно прочитал ваш вопрос; другой ответ кажется правильным. –