在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,可以實現基于事件的異步編程模式。