Dart设置回调Callback
Java回调实现回顾
在Android开发中经常要使用回调,比如说网络请求的回调,在回调中处理请求的结果
比如我们定义了一个RequestCallback的接口,如下所示
public interface HttpCallback {
void onSuccess();
void onError();
}
然后在网络请求的时候,不同接口做不同的回调处理,如下
HttpClient.setCallBack(new HttpCallback() {
@Override
public void onSuccess() {
// 请求成功的处理
}
@Override
public void onError() {
// 请求失败的处理
}
});
以上方法熟悉java的人都知道很简单
但是对于刚学习Flutter的人来说,用Dart语言实现回调可能会踩点坑
Dart回调实现
先上实现代码,再做说明
在Dart中万物皆对象,函数也是对象,用typedef定义两个函数类型,然后在HttpCallback声明这两个函数类型
typedef OnSuccess = void Function(Object o);
typedef OnError = void Function(Exception e);
class HttpCallback {
OnSuccess onSuccess;
OnError onError;
HttpCallback ({OnSuccess this.onSuccess, OnError this.onError});
}
然后在创建HttpCallback实例的时候可以传入这两个函数的具体实现
HttpClient.setCallBack(HttpCallback(
onSuccess: (Object o){
// 请求成功的处理
},
onError: (Exception e) {
// 请求失败的处理
},
));