Как два запроса должны быть связаны в rxjava - PullRequest
0 голосов
/ 26 апреля 2019

Я бы хотел связать два запроса на случай использования, когда токен запроса должен быть обновлен внутри другого вызова:

Логика должна быть такой:

  • позвонить A
  • произошла ошибка (неавторизовано)
  • вход в систему должен быть вызван
  • после успешного повторного входа вызов A должен быть повторно активирован

Текущий запуск / подход:

<T> SingleTransformer<T, T> get() {
            return single -> single.retry((retryCount, throwable) -> {
                boolean isRetryNecessary = false;

            if (retryCount <= MAX_RETRIES) {
                ExceptionCause cause = getCause(throwable);

                if (cause == ExceptionCause.SSL) {
                    handleIt();
                    isRetryNecessary = true;
                }
                if (cause != ExceptionCause.OTHER) {
                    loginUser();
                    isRetryNecessary = true;
                }
            }
            return isRetryNecessary;
        });

loginUser:

Single loginUser() {

        return Single.fromFuture(ApiCallRegister())
                .subscribeOn(Schedulers.io())
                .unsubscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread());
    }

Как мне связать эти два запроса для упомянутой логики?

...