Reducing operators
While developing applications, you may face such a situation where you may need to accumulate and consolidate emissions. Note that nearly all the operators under this criteria will only work on a finite producer (Observable/Flowable) that calls onComplete()
because typically, we can consolidate only finite datasets. We will explore this behavior as we cover these operators.
Here is a short list of reducing operators, which we will cover in this chapter:
count
reduce
all
any
contains
Counting emissions (count operator)
The count
operator subscribes to a producer, counts the emissions, and emits a Single
, containing the count of emissions by the producer.
Here is an example:
fun main(args: Array<String>) { listOf(1,5,9,7,6,4,3,2,4,6,9).toObservable() .count() .subscribeBy { println("count $it") } }
The following is the output:
As we can see from the output, this operator counts the emissions from the producer, and emits the count once it receives...