我需要在拦截器内进行一些异步调用,请求的响应与调用无关,但我不想阻止正在进行的请求/响应。我尝试使拦截器作为直通,但不幸的是抛出非法状态异常,任何帮助将不胜感激。
例如:
val request = chain.request() val 响应 = 继续()
//异步跟踪
我在这里尝试使用线程,但它抛出非法状态异常
回复回复
您可以使用runBlocking。正如文档中提到的,它“运行一个新的协程并阻止当前线程直到完成。”
例如:
val resp = runBlocking {
// asynchronous operation
}
当在这样的拦截器中使用时,拦截器会在异步操作完成后继续其工作。
您可以通过以下文档了解更多详情: https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/run-blocking.html