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比较
- Future:支持“链式”调用,编写便捷。
- Future:异步结果以函数回调的形式返回,对“执行流”控制力较弱。
- async await 可“等待异步结果”,对“执行流”控制力较强。
- async await 调用await的函数需要async修饰,会导致频繁使用async await关键字
5、什么时候使用future?什么时候使用async await?
- 当“异步的结果对当前控制流没有影响”时,使用“Future”
- 当“当前的控制流依赖于异步的结果”时,使用“async await”
flutter开发者项目示例:
flutter_app_sample 帮助flutter开发者更快入门、精进,避免不必要的技术坑。
如果您觉得此项目对您有所帮助,也可以"star"一下,我们得到您的鼓励后会更有动力持续推出更多有益于您的技术示例
特征:
- 本项目是主打技术示例,所以涉及到的需求会比较少,涉及到的技术会比较多
- 本项目是为flutter开发者专门打造的“Api demo app”
- 本项目不仅包含flutter 各种widget组件,还包含开发包、插件,以及与各平台platforms交互、通信(Platform Channel)的技术示例。
- 移步查看更多特征......
网友评论