Мне нужно объединить две наблюдаемые, работающие в разных потоках. Пример кода:
val obs1 = Observable
.create<Int> { emitter ->
emitter.onNext(1)
emitter.onComplete()
}
.subscribeOn(Schedulers.newThread())
val obs2 = Observable.just(2)
val obs = Observable
.just(1, 2)
.flatMap {
Observable.merge(
Observable.just(it).filter { it == 1 }.flatMap { obs1 },
Observable.just(it).filter { it == 2 }.flatMap { obs2 }
)
}
.serialize()
obs.blockingSubscribe(::println)
Ожидается вывод как 1, 2
, иногда получается 2, 1
.
Кажется, serialize()
не помогает.
Как мне добиться правильного порядка выбросов - 1, 2
?