[RxJava] Khái niệm
Rx
7
RxJava
7
Male avatar

Hades viết ngày 06/07/2020

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

OK, đẻ làm mọi thứ trở nên đơn giản hơn, sẽ chỉ có 3 phần để tạo nên một chuỗi Rx điển hình :

alt text

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ụ :

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é :like:

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

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.

alt text

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 toán tử Filter cho phép lọc các phần tử thỏa mãn điều kiện cho trước.

alt text

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

alt text

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 !!!

References

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

Male avatar

Hades

14 bài viết.
19 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
Male avatar
9 13
Dưới đây là một cách tổ chức thư mục mà mình cho là khá hợp lý. Hi vọng mọi người có thể tham khảo và góp ý :smile: Android_structure ├─ com.abc ...
Hades viết gần 4 năm trước
9 13
Male avatar
5 2
Những điều cần nhớ Hades 22042017 Đừng dùng lại Đừng sử dụng lại strings cho nhiều màn hình khác nhau. 1. Tưởng tượng rằng bạn có một hộp thoạ...
Hades viết hơn 3 năm trước
5 2
Male avatar
4 0
Giới thiệu RecycleView là một viewGroup mới được giới thiệu trong Android L ( API 21 ). Đây là một viewGroup có chức năng tương tự như ListView nh...
Hades viết gần 4 năm trước
4 0
Bài viết liên quan
Male avatar
0 0
Introduction Hi ae, trong bài viết này, mình sẽ cùng các bạn tìm hiểu về cách xử lý lỗi trong RxJava. Đầu tiên, hãy nhớ rằng Observable thường kh...
Hades viết 5 tháng trước
0 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


Male avatar
{{userFollowed ? 'Following' : 'Follow'}}
14 bài viết.
19 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!