Observable là một khái niệm. Nó cho phép quản lý các luồng dữ liệu không đồng bộ và sự kiện một cách hiệu quả. Trong Angular, Observable đóng vai trò quan trọng trong việc xử lý các thao tác không đồng bộ như HTTP requests, sự kiện người dùng, và nhiều tác vụ khác.
1. Observable là gì?
Observable là một đối tượng có khả năng phát ra một loạt các giá trị hoặc sự kiện theo thời gian. Các đối tượng khác có thể đăng ký (subscribe) để nhận các giá trị hoặc sự kiện này và thực hiện các hành động tương ứng. Điều này rất hữu ích trong việc quản lý dữ liệu không đồng bộ, chẳng hạn như dữ liệu từ API hoặc sự kiện người dùng.
2. Thành phần của Observable
- Observable: Đối tượng phát ra dữ liệu hoặc sự kiện.
- Observer: Đối tượng lắng nghe và xử lý các giá trị hoặc sự kiện từ Observable. Observer có ba phương thức chính:
- next(value): Xử lý giá trị được phát ra.
- error(err): Xử lý lỗi xảy ra trong quá trình phát giá trị.
- complete(): Thực hiện khi Observable hoàn thành việc phát giá trị.
- Subscription: Được tạo ra khi một Observable được đăng ký bằng cách gọi phương thức .subscribe(). Subscription có thể được hủy bỏ bằng cách gọi unsubscribe().
3. Tạo Observable
Sử dụng constructor của Observable

Sử dụng các creation operators của RxJS



4. Sử dụng Observable
Để sử dụng Observable, các bạn cần đăng ký một Observer bằng cách sử dụng phương thức .subscribe(). Observer sẽ lắng nghe và phản hồi lại các giá trị hoặc sự kiện từ Observable.

5. Các Operators trong RxJS
RxJS cung cấp nhiều operators để thao tác và biến đổi các giá trị phát ra từ Observable. Một số operators phổ biến bao gồm:



6. Sử dụng Observable trong Angular
Trong Angular, Observable thường được sử dụng với các dịch vụ để lấy dữ liệu không đồng bộ, sử dụng HttpClient để thực hiện các HTTP requests. Các phương thức của HttpClient trả về Observable, giúp dễ dàng quản lý dữ liệu không đồng bộ.
Ví dụ sử dụng HttpClient với Observable
Trong file Data Service.ts

Trong component.ts

Kết luận
Observable là một công cụ mạnh mẽ trong Angular để làm việc với dữ liệu không đồng bộ và sự kiện. Hiểu rõ cách tạo, sử dụng và thao tác với Observable sẽ giúp xây dựng các ứng dụng Angular hiệu quả và dễ dàng quản lý luồng dữ liệu phức tạp. RxJS cung cấp nhiều operators giúp biến đổi và thao tác với dữ liệu một cách linh hoạt, giúp code của trở nên ngắn gọn và dễ đọc hơn.
Giảng viên Cao Hoàng Khải
Bộ môn CNTT
FPT Polytechnic TP HCM

