【发布时间】:2019-06-24 10:43:20
【问题描述】:
我正在为我的 kotlin 代码寻找一种完成块的方法。在 Swift 中,我有我的功能:
func fetchRegister(with request: RegisterRequest, completion: @escaping (Result<RegisterResponse,DataResponseError>) -> Void) {
//do some stuff
// if i got error i can use completion(Result.failure(DataResponseError.networking))
}
在 kotlin 中,我当前的代码是:
fun fetchRegister(withRequest: RegisterRequest, callback: (Result<RegisterResponse,DataResponseError>) -> Unit) {
//do some stuff
//cant use callback.onFailure(DataResponseError.networking)
}
我的结果界面:
interface Result<T,U: DataResponseError> {
fun onSuccess(data: T)
fun onFailure(Error: U)
}
还有我的 DataResponseError:
enum class DataResponseError(val errorMessage: String) {
httpBody("An error occured while creating httpBody"),
token("An error occured while getting token"),
networking("An error occured while fetching data"),
decoding("An error occured while decoding data")
}
此时数据无法从该函数中导出,我无法使用 callback.onfailure 或 onSuccess 传递数据。我该如何解决?
【问题讨论】:
标签: android swift kotlin callback