異步編程是一種編程方式,用來處理那些需要等待的操作,但不會讓整個應用程式卡住。當你需要執行像讀取文件、發送網路請求等需要一點時間才能完成的任務時,異步編程可以讓應用程式在等待這些操作的同時繼續處理其他工作,這樣應用程式在處理這些任務時依然可以保持順暢,不會出現卡頓。(有點像是系統程式裡面的RR Rotate)
import 'dart:async';
void main() {
print('開始執行');
fetchData().then((data) {
print('收到資料: $data');
});
print('這行會先執行');
}
Future<String> fetchData() async {
await Future.delayed(Duration(seconds: 2)); // 模擬耗時操作
return '資料已返回';
}
Future<void> fetchData() async {
try {
var response = await http.get(Uri.parse('https://example.com'));
print('Response status: ${response.statusCode}');
print('Response body: ${response.body}');
} catch (e) {
print('Error: $e');
}
}
import 'dart:async';
void main() {
Stream<int> stream = countStream(5);
stream.listen((count) {
print('收到數字: $count');
});
}
Stream<int> countStream(int max) async* {
for (int i = 1; i <= max; i++) {
await Future.delayed(Duration(seconds: 1)); // 模擬每秒發出一個數字
yield i; // 發送數字
}
}
我們明天見~