1 Star 0 Fork 0

zhousg/flutter_dart_basic

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
18-异步.dart 1.67 KB
一键复制 编辑 原始数据 按行查看 历史
zhousg 提交于 2024-09-03 15:16 . 泛型
// 异步编程
// 内容:
// 1. 同步会阻塞程序运行
// 2. 使用 Future 异步处理
// 3. Future 链式调用
// 4. 使用 async await
import 'dart:io';
void main() {
print('main 开始');
// 1. 做一个耗时的操作
// String data = getNetWorkData();
// print(data);
// 2. 通过异步执行
// getNetWorkData().then((result) {
// print(result);
// });
// 3. 链式调用 异常处理
// getNetWorkData().then((result) {
// print(result);
// }).catchError((e) {
// print('错误原因:$e');
// });
// 4. async await 使用
// login().then((token) {
// print(token);
// getUserInfo().then((userInfo) {
// print(userInfo);
// });
// });
doLogin();
print('main 结束');
}
// 1. 同步执行会阻塞
// String getNetWorkData() {
// sleep(Duration(seconds: 3));
// return '网络数据';
// }
// 2. 使用 Future 异步处理
// getNetWorkData() {
// return Future(() {
// // 去进行耗时操作
// sleep(Duration(seconds: 3));
// return '网络数据';
// });
// }
// 3. 链式调用,处理异常
// getNetWorkData() {
// return Future(() {
// // 去进行耗时操作
// sleep(Duration(seconds: 3));
// // return '网络数据';
// throw Exception('网络异常');
// });
// }
// 4. 使用 async await 优化异步操作
// 场景:登录,用户信息
login() {
return Future(() {
sleep(Duration(seconds: 2));
return 'token-10086';
});
}
getUserInfo() {
return Future(() {
sleep(Duration(seconds: 3));
return 'Jack 18';
});
}
doLogin() async {
String token = await login();
print(token);
String userInfo = await getUserInfo();
print(userInfo);
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zhoushugang/flutter_dart_basic.git
[email protected]:zhoushugang/flutter_dart_basic.git
zhoushugang
flutter_dart_basic
flutter_dart_basic
main

搜索帮助