Android-проект:
фрагмент:
import kotlinx.coroutines.Deferred
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import okhttp3.MediaType
import okhttp3.ResponseBody
import retrofit2.Response
class DefaultTransportService {
companion object {
private val SERVICE_UNAVAILABLE = "{\n" +
" \"code\": -1,\n" + // 503
" \"message\": \"Service unavailable\"\n" +
"}"
private val TAG = DefaultTransportService::class.java.name
suspend fun executeOperation(operation: Deferred<Response<*>>): Any = withContext(Dispatchers.IO) {
try {
operation.await()
} catch (e: Throwable) {
val resultResponse = Response.error<Any>(-1, ResponseBody.create(
MediaType.parse("application/json"),
SERVICE_UNAVAILABLE
))
return resultResponse
}
}
}
}
В строке
return resultResponse
Я получаю ошибку компиляции:
'return' is not allowed here
Но янеобходимо изменить ответ, когда operation.await()
выдает любое исключение.