美文网首页FlutterFlutterDart
Flutter future 与 async await 的区别

Flutter future 与 async await 的区别

作者: Air_w | 来源:发表于2020-04-01 13:52 被阅读0次

1、Flutter future 与 async await 的区别/异同

Flutter future 与 async await 的区别/异同
totem_four_logo.jpg
:-

1、目录

  • 1、future
  • 2、async await

2、概要

  • 1、future 特点:“链式调用”
  • 2、async await 特点:“流程可控”

3、用法

async task:

  Future<String> getUserInfo() {
    return Future<String>.delayed(Duration(seconds: 5), () {
      return "delayed task";
    });
  }

1、future


              MaterialButton(
                onPressed: () {
                  print("first");
                  //future
                  getUserInfo().then((value) {
                    print(value);
                  }).catchError((e) {
                    print(e);
                  });

                  print("last");
                },
                child: Text("Click by future"),
              ),

2、async await


              MaterialButton(
                onPressed: () async {
                  print("first");

                  //async await
                  try {
                    print(await getUserInfo());
                  } catch (e) {
                    print(e);
                  } finally {
                    print("finally");
                  }

                  print("last");
                },
                child: Text("Click by async"),
              ),

4、future与async await比较

    1. Future:支持“链式”调用,编写便捷。
    1. Future:异步结果以函数回调的形式返回,对“执行流”控制力较弱。
    1. async await 可“等待异步结果”,对“执行流”控制力较强。
    1. async await 调用await的函数需要async修饰,会导致频繁使用async await关键字

5、什么时候使用future?什么时候使用async await?

    1. 当“异步的结果对当前控制流没有影响”时,使用“Future”
    1. 当“当前的控制流依赖于异步的结果”时,使用“async await”

flutter开发者项目示例:

flutter_app_sample 帮助flutter开发者更快入门、精进,避免不必要的技术坑。
如果您觉得此项目对您有所帮助,也可以"star"一下,我们得到您的鼓励后会更有动力持续推出更多有益于您的技术示例

特征:

  • 本项目是主打技术示例,所以涉及到的需求会比较少,涉及到的技术会比较多
  • 本项目是为flutter开发者专门打造的“Api demo app”
  • 本项目不仅包含flutter 各种widget组件,还包含开发包、插件,以及与各平台platforms交互、通信(Platform Channel)的技术示例。
  • 移步查看更多特征......

相关文章

网友评论

    本文标题:Flutter future 与 async await 的区别

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