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) {
    // 请求失败的处理
  },
));

 

 

 

 

 

posted @ 2019-10-29 15:48  野猿新一  阅读(89)  评论(0编辑  收藏  举报