| Lập Trình Bất Đồng Bộ Trong Dart: Phân Biệt Future Và Stream Toàn Diện

Được viết bởi thanhdt vào ngày 01/06/2026 lúc 19:55 | 22 lượt xem

Trong phát triển ứng dụng di động, các tác vụ như gọi dữ liệu từ API trên mạng, đọc file từ thẻ nhớ, hay lắng nghe luồng giá coin thời gian thực đều cần xử lý Bất đồng bộ (Asynchronous) để tránh làm đơ giao diện người dùng.

1. Khái niệm cốt lõi: Event Loop và Asynchronous

Dart chạy trên cơ chế đơn luồng (Single-threaded). Nhưng nhờ Event Loop điều phối, Dart có thể xử lý các tác vụ bất đồng bộ cực kỳ mượt mà.

2. Future: Kết quả của một tác vụ đơn lẻ trong tương lai

Future đại diện cho một giá trị hoặc lỗi sẽ được trả về tại một thời điểm nào đó trong tương lai (tương tự như Promise trong JavaScript).
* Cú pháp hiện đại: Sử dụng cặp từ khóa asyncawait để viết code bất đồng bộ trông giống như đồng bộ, giúp mã nguồn cực kỳ dễ đọc.
* Ví dụ: Gọi API lấy thông tin thời tiết.

3. Stream: Luồng dữ liệu liên tục theo thời gian

Không giống như Future chỉ trả về một giá trị duy nhất rồi kết thúc, Stream là một luồng chảy dữ liệu liên tục.
* Cơ chế: Lắng nghe (Listen) và phản hồi bất cứ khi nào có dữ liệu mới đổ về.
* Ví dụ: Lắng nghe luồng giá chứng khoán cập nhật liên tục mỗi giây qua WebSockets.