
Future & Async/Await là các cơ chế trong Dart dùng để xử lý bất đồng bộ (Asynchronous Programming), cho phép chương trình thực hiện những tác vụ cần thời gian như gọi API, đọc database, đọc file… mà không làm ứng dụng bị đứng trong lúc chờ kết quả.
Future
Future đại diện cho một giá trị sẽ được trả về trong tương lai.
Future thường có 3 trạng thái:
- Uncompleted: tác vụ đang được thực hiện, chưa có kết quả.
- Completed with value: tác vụ hoàn thành và trả về kết quả.
- Completed with error: tác vụ hoàn thành nhưng xảy ra lỗi.
Future thường được sử dụng khi làm việc với API, database, file hoặc các tác vụ cần thời gian xử lý.
Async
async được dùng để đánh dấu một hàm là hàm bất đồng bộ. Hàm có async thường trả về một Future.
async cho phép sử dụng await bên trong hàm.
Await
await dùng để chờ một Future hoàn thành rồi lấy kết quả trả về.
Khi gặp await, chương trình sẽ tạm dừng việc thực thi phần code phía sau trong hàm đó cho đến khi Future hoàn thành, nhưng không làm block toàn bộ ứng dụng.
Xử lý lỗi với Future
Các tác vụ bất đồng bộ có thể xảy ra lỗi, thường được xử lý bằng:
- try/catch: bắt và xử lý lỗi khi dùng await.
- then(): xử lý kết quả khi Future hoàn thành.
- catchError(): xử lý lỗi của Future.
Bài viết khác
Language Switching trong Flutter
Trong quá trình phát triển ứng dụng di động, khả năng hỗ trợ nhiều ngôn ngữ ngày càng trở nên quan trọng. Một ứng dụng chỉ sử dụng duy nhất một ngôn ngữ có thể gặp khó khăn khi tiếp cận người dùng ở các quốc gia và khu vực khác […]
UTC & Local Time Conversion
Trong thời đại toàn cầu hóa, con người thường xuyên làm việc, học tập và giao tiếp với những người ở các quốc gia khác nhau. Một cuộc họp trực tuyến có thể được tổ chức tại Việt Nam, nhưng người tham gia lại đang ở Hoa Kỳ, Anh, Nhật Bản hoặc Australia. Vì vậy, […]
Logging / Monitoring / CI/CD
1. Logging / Monitoring / CI/CD là gì? Trong quá trình phát triển phần mềm, việc viết code để ứng dụng chạy được chỉ là một phần của công việc. Khi đưa ứng dụng vào sử dụng thực tế, lập trình viên còn phải quan tâm đến nhiều vấn đề khác như ứng dụng có […]
Docker
1. Docker là gì? Docker là một nền tảng được sử dụng để đóng gói, triển khai và chạy ứng dụng trong các môi trường độc lập, được gọi là Container. Docker giúp lập trình viên đưa mã nguồn, thư viện, các gói phụ thuộc và những thành phần cần thiết để chạy ứng dụng […]
Unit Testing và Integration Testing
1. Unit Testing và Integration Testing là gì? Unit Testing và Integration Testing là hai phương pháp kiểm thử phần mềm thường được sử dụng trong quá trình phát triển ứng dụng. Mục đích của hai phương pháp này là kiểm tra xem chương trình có hoạt động đúng theo yêu cầu hay không, đồng […]
Message Broker
1. Message Broker là gì? Message Broker là một thành phần trung gian được sử dụng để tiếp nhận, quản lý và chuyển tiếp thông điệp giữa các ứng dụng hoặc các thành phần trong một hệ thống phần mềm. Công nghệ này thường xuất hiện trong những hệ thống Backend, kiến trúc Microservices và […]