Новый в Kotlin здесь и пытается узнать лучший способ использования функций более высокого порядка и прохождения лямбд.Я создал этот метод, чтобы вызывать API и возвращать объект, созданный из строки, ИЛИ возвращать ошибку, если что-то пошло не так.
fun getDeviceStatus(onSuccess: (Device) -> Unit, onFailure: ((String) -> Unit)? = null) {
FuelClient.get(DEVICE_URL,
success = { responseString ->
val adapter = MoshiUtil.moshi.adapter(Device::class.java)
val deivce= adapter.fromJson(responseString)!!
onSuccess(device)
},
failure = { onFailure?.invoke(it.message!!)})
}
Я могу использовать эту функцию, например, так:
DeviceService.getDeviceStatus(
{ w ->
print("device")
},
{ e -> print(e) })
Но меня немного беспокоит, что я не вижу названия функций, чтобы увидеть, что делает каждая функция.Мне интересно, есть ли более чистый / лучший способ сделать это, например
DeviceService.getDeviceStatus(){
onSuccess{print("device")}
onFailure{print("error")}
}
или, может быть,
DeviceService.getDeviceStatus()
.onSuccess{print("device")}
.onFailure{print("error")}
Но это дает ошибки. Любые мысли о том, как лучше всего справиться сСлучай использования onSuccess / onFailure, который очень распространен? Thx