Bỏ qua để đến nội dung

Async/Await

🎯 Mục tiêu: Asynchronous programming với async/await.


Future<String> fetchData() async {
await Future.delayed(Duration(seconds: 1));
return "Data loaded";
}
void main() async {
print("Loading...");
var data = await fetchData();
print(data);
}

Future<void> loadData() async {
try {
var data = await fetchData();
print(data);
} catch (e) {
print("Error: $e");
} finally {
print("Done");
}
}

var results = await Future.wait([
fetchUsers(),
fetchPosts(),
fetchComments(),
]);

class MyWidget extends StatefulWidget {
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
String? data;
bool isLoading = true;
@override
void initState() {
super.initState();
_loadData();
}
Future<void> _loadData() async {
try {
var result = await fetchData();
setState(() {
data = result;
isLoading = false;
});
} catch (e) {
setState(() => isLoading = false);
}
}
}

  • async trên function, await khi gọi Future
  • Try-catch cho error handling
  • Future.wait cho parallel execution