在 Dart 语言中,Future
和 async
是用于处理异步操作的关键词。
Future
:
Future
是 Dart 中表示异步操作结果的类。它表示一个可能在未来完成的计算。- 当你执行一个异步操作时,它通常会返回一个
Future
对象,该对象最终会包含操作的结果。 - 你可以使用
Future
对象来注册回调,以在操作完成时得到通知,或者等待操作完成。
示例:
Future<String> fetchData() async {
// 模拟异步操作,比如从网络获取数据
await Future.delayed(Duration(seconds: 2));
return "Data loaded successfully!";
}
void main() {
print("Fetching data...");
fetchData().then((result) {
print(result);
});
print("Operation in progress...");
}
async
:
async
是 Dart 中用于定义异步函数的关键词。当函数需要执行异步操作时,你可以将其标记为async
。- 标记为
async
的函数可以包含await
关键词,用于等待一个Future
完成。
示例:
Future<String> fetchData() async {
// 模拟异步操作,比如从网络获取数据
await Future.delayed(Duration(seconds: 2));
return "Data loaded successfully!";
}
Future<void> main() async {
print("Fetching data...");
String result = await fetchData();
print(result);
print("Operation completed.");
}
在上述示例中,fetchData
函数返回一个 Future<String>
,而 main
函数是一个 async
函数,使用 await
等待异步操作完成。这种结构使得异步代码更加清晰和易于理解。