Flutter 异步编程:Future、async、await 深入解析
import 'dart:async';
// 示例函数,模拟异步操作,比如网络请求
Future<String> fetchData() async {
// 模拟网络延迟
await Future.delayed(Duration(seconds: 2));
return '数据获取成功!';
}
void main() {
// 调用异步函数并等待结果
Future<String> futureData = fetchData();
// 使用then方法处理异步操作的结果
futureData.then((data) {
print(data);
}).catchError((error) {
print('出现错误:$error');
});
// 使用async/await语法处理异步操作
Future<void> futurePrintData = asyncPrintData();
// 在then方法中处理最终结果
futurePrintData.then((_) {
print('所有数据打印完毕!');
});
}
// 使用async/await的异步函数
Future<void> asyncPrintData() async {
try {
String data = await fetchData();
print(data);
} catch (error) {
print('出现错误:$error');
}
}
这段代码首先定义了一个异步函数fetchData
,该函数模拟了网络延迟后返回一个字符串。在main
函数中,我们展示了如何使用then
方法和async/await
来处理异步操作的结果,包括正常结果和错误情况。这是处理Flutter中异步编程的两种常用方式。
评论已关闭