The first will trigger observations for those values for which the predicate returns true.
The second will trigger observations for those values where the predicate returns false.
The predicate is executed once for each subscribed observer.
Both also propagate all error observations arising from the source and each completes
when the source completes.