Sobes.tech
Junior — Middle

Hoe voer je twee verzoeken achter elkaar uit, waarbij je een token voor autorisatie doorgeeft, en beide resultaten tegelijk krijgt?

sobes.tech AI

Antwoord van AI

Для последовательного выполнения двух запросов с передачей токена и получения обоих результатов одновременно можно использовать корутины или RxJava (в Android).

Пример с Kotlin Coroutines и Retrofit:

suspend fun fetchData(token: String): Pair<Response1, Response2> {
    val response1 = api.getFirstData("Bearer $token")
    val response2 = api.getSecondData("Bearer $token")
    return Pair(response1, response2)
}

Если нужно выполнить запросы параллельно и дождаться обоих результатов:

suspend fun fetchDataParallel(token: String): Pair<Response1, Response2> = coroutineScope {
    val deferred1 = async { api.getFirstData("Bearer $token") }
    val deferred2 = async { api.getSecondData("Bearer $token") }
    Pair(deferred1.await(), deferred2.await())
}

В обоих случаях токен передаётся в заголовке авторизации. Такой подход позволяет получить оба результата и обработать их вместе.