rx-java doOnNext operator


doOnNext operator called every time when source Observable emits an item. It can be used for debugging purposes, applying some action to the emitted item, logging, etc...

Observable.range(1, 3)
    .doOnNext(value -> System.out.println("before transform: " + value))
    .map(value -> value * 2)
    .doOnNext(value -> System.out.println("after transform: " + value))

In the example below doOnNext is never called because the source Observable emits nothing because Observable.empty() calls onCompleted after subscribing.

    .doOnNext(item -> System.out.println("item: " + item))