Creating your own operators
So far, we have used lots of operators, but are we sure they will meet all our needs? Or, can we always find a fitting operator for each requirement we face? No, that's not possible. Sometimes, we may have to create our own operators for our own needs, but how?
RxKotlin is always there to make your life easier. It has an operator just for this purpose—the lift
operator. The lift
operator receives an instance of ObservableOperator
; so, to create your own operator, you have to implement that interface.
In my opinion, the best way to learn something is by doing it. What about creating a custom operator that would add a sequential number to every emission? Let's create it as per the following list of requirements:
- The operator should emit a pair, with an added sequential number as the first element. The second element of the pair should be the actual emission.
- The operator should be generic and should work with any type of Observable.
- As with other operators, the operator...