Flutter 中的异步编程主要依赖于 `Future` 和 `Stream`,它们是 Dart 语言中处理异步操作的核心工具。下面我们将深入解析 `Future` 和 `Stream` 的使用场景、区别以及如何在实际开发中灵活运用它们。
### 1. Future
`Future` 表示一个异步操作的结果,它会在未来的某个时间点完成并返回一个值或错误。`Future` 通常用于处理单次异步操作,比如网络请求、文件读写等。
#### 1.1 Future 的基本使用
```dart
Future<String> fetchUserData() {
return Future.delayed(Duration(seconds: 2), () => "User Data");
}
void main() {
print("Fetching user data...");
fetchUserData().then((data) {
print("Data received: $data");
}).catchError((error) {
print("Error: $error");
});
}
```
在上面的例子中,`fetchUserData` 函数返回一个 `Future`,它会在 2 秒后返回一个字符串。通过 `then` 方法,我们可以在 `Future` 完