RxJava CombineПоследняя отладка - PullRequest
0 голосов
/ 25 октября 2018

Я использую оператор RxJava CombineLatest.

В соответствии с документацией, при подписке первое событие комбинированного выброса будет происходить только после того, как обе наблюдаемые отправят значения, и с этого момента оно будет излучаться при каждом излучении.каждого из наблюдаемых.

Как я могу определить, что произошло первое наблюдаемое событие выброса, и теперь оно ожидает второго ..

1 Ответ

0 голосов
/ 25 октября 2018

Вы можете использовать doOnEach для Observables и Flowables или doOnEvent для Singles, Completables и Maybes.То, что делают эти операции, это выполняет некоторый код каждый раз, когда элемент испускается из источника перед передачей сигнала в нисходящем направлении.Это очень полезно для «внедрения» кода отладки / регистрации в поток RX.

См .: https://proandroiddev.com/briefly-about-rxjava-logging-20308b013e6d

РЕДАКТИРОВАТЬ:

val a = BehaviorSubject.create<Int>().apply {
    onNext(1)
}.doOnEach { EventReporter.d(TAG, it.value?.toString() ?: "") }

val b = BehaviorSubject.create<Int>().apply {
    onNext(2)
}.doOnEach { EventReporter.d(TAG, it.value?.toString() ?: "") }

Observable.combineLatest(listOf(a, b), { args: Collection<Int> -> args}
...