Suppressing operators
There are a number of operators that will suppress emissions that fail to meet a specified criterion. These operators work by simply not calling the onNext()
function downstream for a disqualified emission, and therefore does not go down the chain to Observer
. We have already seen the filter()
operator, which is probably the most common suppressing operator. We will start with this one.
filter()
The filter()
operator accepts Predicate<T>
for a given Observable<T>
. This means that you provide it a lambda that qualifies each emission by mapping it to a Boolean value, and emissions with false will not go forward.
For instance, you can use filter()
to only allow string emissions that are not five characters in length:
import io.reactivex.Observable; public class Launcher { public static void main(String[] args) { Observable.just("Alpha", "Beta", "Gamma", "Delta", "Epsilon") .filter(s -> s.length() != 5) subscribe(s -> System.out.println...