Как предотвратить Rx java Тема на "onComplete"? - PullRequest
0 голосов
/ 16 марта 2020

Мне нужен субъект Rx Java, который игнорирует onComplete(), поэтому даже если я использовал RxRelay , он вызывает onComplete: (

private val mDisposables = CompositeDisposable()
private val mRelay: BehaviorRelay<Boolean> = BehaviorRelay.createDefault(true)
....
mDisposables += mRelay
        .observeOn(io)
        .throttleLatest(5, SECONDS)
        .flatMap { ... }
        .zipWith(...)
        .switchMap {...}
        .subscribeOn(io)
        .subscribeWith(object : DisposableObserver<UiData>() {
          override fun onComplete() {
            Timber.d("COMPLETED")
          }

          override fun onNext(it: UiData) {
            Timber.d(it.toString())
          }

          override fun onError(e: Throwable) {
            Timber.e(e)
          }
        })
  }

Почему всегда onComplete звоните

Ответы [ 2 ]

1 голос
/ 16 марта 2020

Вероятно, вы используете .zipWith, что ограничивает поток самым коротким участником, независимо от того, когда другие потоки когда-либо заканчивались sh.

0 голосов
/ 16 марта 2020

Я понял, .zipWith() нарушает поток. Наконец я заменил .zipWith() на .flatMap().

Спасибо @ Kiskae

...