Christian Sousa
03/21/2020, 1:48 PMfun fetchAvailableLanguages(): List<String> {
val url = createLanguagesJsonUrl()
lateinit var availableLangs: List<String>
GlobalScope.launch {
try {
var response = restClient.get(url).await()
println("Resp: $response")
val list = json.parse(LanguageData.serializer(), response.readText())
availableLangs = list.languagesAvailable
} catch (t: Throwable) {
//Errors.FETCH_AVAILABLE_LANGUAGES, Errors.AVAILABLE_LANGUAGES_NOT_FOUND
println("Error: ${t.message}")
}
}
return availableLangs
}
But the problem is that availableLang
that should be initialized on the restClient.get()
call, is not. Actually, even though I put the await()
it is not even awaiting for anything.
My restClient.get
looks like this:
suspend fun get(url: String): Deferred<HttpResponse> =
GlobalScope.async {
suspend fun clientGet(): HttpResponse = client.get {
url(url)
accept(ContentType.Application.Json)
}
clientGet()
}
Anyone know how can I make it really wait for my call? Thanks