Giới thiệu
Khi tôi mới học Android, ai đó đã nói với tôi rằng “Nếu bạn muốn học thứ gì khó khó, hãy học RxJava”.
Trong series này, tôi sẽ cùng các bạn tìm hiểu nó từ những điều đơn giản nhất nhé.
3 thành phần trong Rx
Trong RxJava, chỉ có 3 phần để tạo nên một chuỗi Rx điển hình. Đó là:
- Producer
- Consumer
- Operator
Producer
Producer về cơ bản chịu trách nhiệm sản xuất dữ liệu. Và dữ liệu được sản sinh ra này chỉ có thể được sử dụng bởi người connect với nó (Consumer)
Về cơ bản, Producer bao gồm 5 loại :
- Observable
- Single
- Maybe
- Flowable
- Completable
Ví dụ :
1
Single.just(1)
Ở đây, Single đơn giản là 1 loại Producer chỉ có thể sinh ra 1 thứ. Ta sẽ cùng tìm hiểu và đưa ra ví dụ chi tiết với các loại producer khác sau nhé.
Consumer
Bây giờ, khi Producer
có data, và Consumer
hay gọi là người tiêu thụ muốn sử dụng nó, họ chỉ cần kết nối bằng cách sử dụng function Subscribe
1
Single.just(1).subscribe{ it -> print(it) }
Trong trường hợp này, Consumer chỉ muốn in ra kết quả mà Producer đã tạo.
Như ban đầu giới thiệu, vậy còn khúc operators
thì sao ?
Operators
Để dễ mình họa các toán tử (operators) trong Rx, hãy cùng xem diagram sau để rõ hơn nhé : https://rxmarbles.com/
Lấy một ví dụ đơn giản, ta muốn sinh ra một chuỗi số từ 0->9 và chỉ nhận các giá trị chẵn. Rất may mắn, trong Rx cung cấp operator filter
cho phép lọc các phần tử thỏa mãn điều kiện cho trước.
Và một điều tuyệt vời hơn nữa, bạn có thể sử dụng nhiều hơn 1 operator miễn sao trước khi nó đến được tay Consumer
Conclusion
Hi vọng qua bài viết này các bạn có thể hiểu cơ bản qua về Rx và các thành phần bên trong nó. Trong bài viết tiếp theo mình sẽ cùng tìm hiểu Rx mạnh mẽ thế nào khi xử lý luồng nhé. Happy coding !!!