在拦截器内改造异步调用

问题描述 投票:0回答:1

我需要在拦截器内进行一些异步调用,请求的响应与调用无关,但我不想阻止正在进行的请求/响应。我尝试使拦截器作为直通,但不幸的是抛出非法状态异常,任何帮助将不胜感激。

例如:

val request = chain.request() val 响应 = 继续()

//异步跟踪

我在这里尝试使用线程,但它抛出非法状态异常

回复回复

android kotlin retrofit interceptor
1个回答
0
投票

您可以使用runBlocking。正如文档中提到的,它“运行一个新的协程并阻止当前线程直到完成。”

例如:

val resp = runBlocking {
    // asynchronous operation
}

当在这样的拦截器中使用时,拦截器会在异步操作完成后继续其工作。

您可以通过以下文档了解更多详情: https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/run-blocking.html

© www.soinside.com 2019 - 2024. All rights reserved.