在Dart中进行异步编程有多种方式,其中最常见的是使用Future和async/await关键字。以下是一个简单的示例:
void main() {
print('Start');
fetchData().then((data) {
print('Data fetched: $data');
}).catchError((error) {
print('Error: $error');
});
print('End');
}
Future<String> fetchData() async {
await Future.delayed(Duration(seconds: 2));
return 'Hello, World!';
}
在上面的示例中,main函数首先打印"Start",然后调用fetchData函数。fetchData函数是一个异步函数,其中使用await关键字来等待一个延迟2秒的Future对象。在等待期间,程序会继续执行主线程中的代码。当Future对象完成后,程序会继续执行fetchData函数并返回数据。最后,程序打印"Data fetched: Hello, World!"。
除了Future和async/await外,Dart还提供了Stream来处理流式数据的异步编程。通过Stream,可以实现基于事件的异步编程模式。