Синхронный RxJava запрос

У меня есть OkHttp Interceptor, который добавляет headers к запросам. Проблема в том, что он делает это асинхронно(использую RxJava2) и запрос уходить до модификации Interceptor. Код Interceptor:

class AddCookiesInterceptor: Interceptor {

    @Inject
    lateinit var cookiesDao: CookiesDao

    init {
        App.getAppComponent().inject(this)
    }

    @SuppressLint("CheckResult")
    override fun intercept(chain: Interceptor.Chain): Response {
        val builder = chain.request().newBuilder()
        cookiesDao.getAll()
            .subscribe { cookies ->
            builder.addHeader("Cookie", "JWT=" + cookies.jwt)
        }
        return chain.proceed(builder.build())
    }
}

Пробовал делать cookiesDao.getAll().blockingFirst(), но это не помогает. Метод Dao возвращает Observable<Cookie>, где Cookie - data class


Ответы (1 шт):

Автор решения: ЮрийСПб

CookiesDao, наверное, из библиотеки Room? Коли так, то просто сделайте в Dao классе метод getAll который не Observable возвращает, а просто Cookie - так вам не нужен будет Rx и не надо будет выяснять почему blockingFirst не работает, хотя и должен, по идее

→ Ссылка