doOnNext 运算符

每当源 Observable 发出一个项目时,doOnNext 运算符都会调用。它可用于调试目的,对发出的项目应用一些操作,记录等…

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

在下面的示例中,doOnNext 从未被调用,因为源 Observable 没有发出任何内容,因为 Observable.empty() 在订阅后调用了 onCompleted

Observable.empty()
    .doOnNext(item -> System.out.println("item: " + item))
    .subscribe();