Flutter-----异步编程:Future和Stream
在Flutter中,我们可以使用Future
和Stream
来进行异步编程。
Future
Future
是一个未来发生的事件,只会发生一次。例如,我们可以使用Future
来处理异步计算或者从网络加载数据。
Future<String> fetchData() async {
// 模拟网络延迟
await Future.delayed(Duration(seconds: 2));
return "Data Loaded";
}
void main() {
// 调用异步函数
Future<String> future = fetchData();
// 使用then方法处理异步操作的结果
future.then((value) => print(value)).catchError((error) => print(error));
}
Stream
Stream
是一系列的事件,可以发生多次。例如,我们可以使用Stream
来处理实时数据流,如用户的键盘输入,或者服务器的数据推送。
Stream<int> countStream(int max) async* {
for (int i = 0; i < max; i++) {
await Future.delayed(Duration(seconds: 1));
yield i;
}
}
void main() {
// 创建Stream并监听
Stream<int> stream = countStream(5);
// 使用listen方法监听Stream的事件
stream.listen((value) => print(value), onError: (error) => print(error));
}
以上代码展示了如何在Flutter中使用Future
和Stream
来进行异步编程。
评论已关闭