var news: EntityList // предположим что я его проинициализировал ранее
override fun getNewsFromApi(search:String): EntityList {
val call: Call<EntityList> = if (search.isNotEmpty()) {
api.getEverythingNews(q = search, apiKey = API_KEY)
} else {
api.getTopNews(country = "ru", apiKey = API_KEY)
}
call.enqueue(object : Callback<EntityList> {
override fun onResponse(call: Call<EntityList>, response: Response<EntityList>) {
news = response.body() ?: news
}
override fun onFailure(call: Call<EntityList>, t: Throwable) {
Log.e("AAA", t.toString())
}
})
return news
}
Есть у меня функция, которая возвращает мне ответ из api. Суть проблемы заключается в том, что
call.enqueue(object : Callback<EntityList>
выполняется асинхронно, соответственно в return у меня не попадает ответ от сервера. Вычитал что мне должны помочь колбэки, но я чёт не нашел инфы, которая помогла бы мне понять как реализовать решение.
Использую
retrofit2
Спасибо