Повторите тот же запрос, который только что завершился неудачно из-за ошибки в RX Java с Kotlin - PullRequest
0 голосов
/ 19 июня 2020

Формулировка проблемы: Всякий раз, когда возникает ошибка запроса, я показываю панель закусок в пользовательском интерфейсе, на которой есть кнопка RETRY. При нажатии на кнопку повтора должен быть сделан такой же запрос. Я пробовал разные вещи, но безуспешно, это один фрагмент кода, который я пробовал только что.

In Presenter

private val _retryClickObserver: PublishSubject<Unit> = PublishSubject.create()

@VisibleForTesting
val retryClickObserver: PublishSubject<Unit> = _retryClickObserver 

fun loadData() {
        addSubscription(repository.getData()
            .doOnSubscribe { view.showProgressBar() }
            .doAfterTerminate { view.hideProgressBar() }
            .retryWhen { observable ->
                observable.zipWith(itemClickObserver.toFlowable(BackpressureStrategy.LATEST),
                    BiFunction<Throwable, Any, Any> { _: Throwable, Any -> Any
                    })
            }
            .subscribe({ handleResult(it) }, { handleError(it) }
            )
        )
    }

In Fragment

override fun showErrorMessage() {
        showSnackBar(rootLayout, R.string.try_again) {           
                presenter.retryClickObserver.onNext(Unit)
            }

        }
    }

Пожалуйста, помогите, заранее спасибо.

...