美文网首页
flutter多接口请求返回后统一处理

flutter多接口请求返回后统一处理

作者: 東玖零 | 来源:发表于2022-11-02 16:45 被阅读0次

    背景:一个页面的数据来源可能不止一个接口,我们可以请求一个再请求另一个串行渲染,不过页面上loading还没有消失就显示一点,一会再显示一点,效果不理想,于是就想一次发出多个请求,都返回后统一处理。

    搬个砖上代码:

    // 获取订单详情 dio 来源 import 'package:dio/dio.dart';
    Future<OrderDetailRes?> _httpGetOrderDetail() async {
      OrderDetailRes? reply;
      try {
         var para = {
          "id": "6" //*订单ID
         };
         var response = await dio.get("http://127.0.0.1:8080/test", queryParameters: para);
          // print("response $response");
         var data = json.decode(response.data);
          // OrderDetailRes有网站可自动生成
         reply = OrderDetailRes.fromJson(data as Map<String, dynamic>);
          // print(reply);
        } catch (e) {
          print("订单列表请求失败 ${e.toString()}");
        } 
      return Future.value(reply);
    }
    
    // 假如请求多个接口,都返回后再一起处理,这里我就不再实现其他,其他和这获取订单详情一样
    void _httpGetData() {
        Future.wait([_httpGetOrderDetail(),_httpGetOrderDetail()]).then((value) {
          var reply1 = value[0] as OrderDetailRes;
          var reply2 = value[1] as OrderDetailRes;
          print(reply1.toString());
          print(reply2.toString());
          setState(() {
            // 处理代码
          });
        }).catchError((error) {
          EasyLoading.showToast("接口获取失败");
        });
    }
    
    

    我们在需要的地方调用_httpGetData就可以了。

    相关文章

      网友评论

          本文标题:flutter多接口请求返回后统一处理

          本文链接:https://www.haomeiwen.com/subject/jvvjtdtx.html