Похоже, что вы реализуете перехватчик OkHttp, поэтому я надеюсь, что intercept()
вызывается в фоновом потоке.
Если это так, используйте runBlocking()
:
override fun intercept(chain: Interceptor.Chain): Response {
// getSession is a suspend function
val session = runBlocking { sessionProvider.getSession() }
return chain.proceed(
chain
.request()
.newBuilder()
.addHeader("Authorization", "${session.token}")
.build()
)
}
runBlocking()
выполнит функцию suspend
, блокируя текущий поток, пока эта работа не будет завершена.