Introduction

Operators that transform items that are emitted by an Observable.


Dưới đây là một số toán tử chuyển đổi phổ biến nhất mà tui nghĩ bạn sẽ thấy mình đang sử dụng.

Map

Applies a function to each emitted item. It transforms each emitted item by applying a function to it.


✨ Thứ tự được duy trì ✅

Diagram:


Buffer

Periodically gather items from an Observable into bundles and emit the bundles rather than emitting items one at a time.


✨ Thứ tự được duy trì ✅

Diagram:


Debounce

Only emit an item from an Observable if a particular timespan has passed without it emitting another item.


Toán tử này thực sự tuyệt vời cho các lần nhấp vào nút. Nếu người dùng nhấn một nút quá nhiều lần, không cần phải thực hiện hành động nhiều lần. Ta có thể sử dụng toán tử Debounce() để giảm bớt số lần nhấp của họ bằng cách đưa ra khoảng thời gian cho phép giữa các lần nhấp. Nếu khoảng thời gian chưa trôi qua, ta có thể ngăn không cho bất kỳ phương thức nào được gọi hai lần.

✨ Thứ tự được duy trì ✅

Diagram:

ThrottleFirst

Filters out items emitted by the source Observable that are within a timespan.


✨ Thứ tự được duy trì ✅

Diagram:


FlatMap

Transform the items emitted by an Observable into Observables, then flatten the emissions from those into a single Observable. If you're familiar with LiveData, MediatorLiveData can do something very similar. I'll talk more about that in this blog on FlatMap().


- Ví dụ khi các bạn thấy Facebook load cùng lúc 50 bài viết và mỗi bài viết sẽ load khoảng 100 cái bình luận nữa ha 👌. Thì ở đây tui sẽ dùng flatmap

✨ Thứ tự không được duy trì ❌

Diagram:

ConcatMap

Transform the items emitted by an Observable into Observables. This is essentially the same thing as FlapMap(), but the order is preserved. But because ConcatMap() must wait for each observable to complete its work, technically it's not asynchronous.


✨ Thứ tự được duy trì ✅

Diagram:


SwitchMap

SwitchMap() will transform items emitted by an Observable into an Observable just like ConcatMap() and FlatMap(). The difference being that it will unsubscribe previous observers once a new Observer has subscribed. Essentially this solves a limitation that both ConcatMap() and FlatMap() have.


✨ Thứ tự được duy trì ✅

Diagram:

Tổng kết

- Trên đây là những toán tử theo cá nhân tui hay dùng, và nó hầu như đáp ứng đủ mọi thể loại nhiệp vụ trong lúc mình coding. Mọi người nếu đọc mà thấy tui viết còn thiếu thì hay comment ở dưới để cho tui và những người khác được biết nhé! 😁
- Còn chi tiết hơn về những toán tử trên thì ở những bài viết sau tui sẽ làm chi tiết hơn từng loại toán tử 1, các bạn tìm trong blog này nhé!!!

2 تعليقات

Cảm ơn bạn đã quan tâm và bày tỏ :D

  1. Thiếu nhiều toán tử quá, như timer...

    ردحذف
    الردود
    1. Ở bài viết sau mình sẽ cố gắng cập nhật thêm những toán tử nữa, cùng đón chờ nhé!

      حذف

إرسال تعليق

Cảm ơn bạn đã quan tâm và bày tỏ :D

أحدث أقدم