四、Dart 练习网站
在 https://dartpad.dartlang.org/ 网站 , 练习 Dart 语言 ;
五、async、await 关键字
async 关键字一般用作 方法的后缀 , 被修饰的方法的 返回值必须是 Future 类型的 ;
方法执行时 , 以 同步的形式 执行到 await 关键字位置 , 然后 挂起 , 等待后续异步方法执行 ;
异步任务执行完毕后 , await 之后的代码开始执行 ;
六、whenComplete 方法
在 Future 执行快要结束时 , 如果想要执行一些任务 , 可以在链式调用时 , 调用 Future 的 whenComplete 方法 ;
该方法类似于 try … catch … finally 中的 finally 代码块 , 是必定执行的代码 , 即使出险错误 , 也会执行该代码 ;
Future<String> testFuture() { return Future.value('success'); } main() { testFuture().then((s) { print(s); }).catchError((e) { print('catchError:'); print(e); }).whenComplete(() { print('whenComplete'); }); }
七、timeout 方法
有的异步操作可能需要很长时间完成 , 这里为异步操作指定一个超时时间 ;
在 Future 链式调用时 , 调用 timeout 方法 , 设置超时时间 ;
void main() { /// 异步操作中会延迟 3 秒 , 超时时间 2 秒 new Future.delayed(new Duration(seconds: 3), () { return 1; }).timeout(new Duration(seconds: 2)).then(print).catchError(print); }
八、相关资源
参考资料 :
Flutter 官网 : https://flutter.dev/
Flutter 插件下载地址 : https://pub.dev/packages
Flutter 开发文档 : https://flutter.cn/docs ( 强烈推荐 )
官方 GitHub 地址 : https://github.com/flutter
Flutter 中文社区 : https://flutter.cn/
Flutter 实用教程 : https://flutter.cn/docs/cookbook
Flutter CodeLab : https://codelabs.flutter-io.cn/
Dart 中文文档 : https://dart.cn/
Dart 开发者官网 : https://api.dart.dev/
Flutter 中文网 : https://flutterchina.club/ , http://flutter.axuer.com/docs/
Flutter 相关问题 : https://flutterchina.club/faq/ ( 入门阶段推荐看一遍 )
GitHub 上的 Flutter 开源示例 : https://download.csdn.net/download/han1202012/15989510
Flutter 实战电子书 : https://book.flutterchina.club/chapter1/
重要的专题 :
Flutter 动画参考文档 : https://flutterchina.club/animations/