Ваша проблема в том, что вы обрабатываете возврат после выполнения асинхронного вызова, это вызывает возврат до того, как вы получите ответ - так что ни ошибка, ни sellersList никогда не устанавливаются, а просто возвращается пустой список.Вместо того, чтобы возвращать что-то напрямую, вы можете рассмотреть возможность передачи обратного вызова об успешном завершении и ошибке или прослушивателя в качестве параметра, а затем передать результат обратному вызову.
что-то вроде:
fun loadEmployeesFromApi (successCallback: (List<SellersItem>)->Unit, errorCallback: (String)->Unit) {
...
и сделать вызов, когда вы загружаете данные
when (code) {
200 -> {
/** response.body().sellers retorna una sellers: list<SellersItem> con los registros de los vendedores que pueden acceder a la app
**Datos que contiene el objeto:
** usuario
* id
* nombre
* contrasenia
**/
sellersList = response.body()?.sellers as List<SellersItem>
successCallback(sellersList)
} 0 -> {
error = true
message = "No se pudieron obtener los registros de vendedores, el servidor no retornó una respuesta"
errorCallback(message)
} 404 -> {
error = true
message = "No hay registros de vendedores activos"
errorCallback(message)
} else -> {
error = true
message = "Ocurrió un error al obtener los registros de vendedores, el servidor retornó $code de respuesta"
errorCallback(message)
}
}
, и вы можете сделать вызов следующим образом:
loadEmployeesFromApi({ sellerList ->
// handle success
}, { errorMessage ->
// handle error
})