这是一个使用doOnNext()的旧项目的示例:
API.getVideoListObservable()
.doOnError(t -> t.printStackTrace())
.map(r -> r.getObjects())
.doOnNext(l -> VideoActivity.this.runOnUiThread(() -> fragment.updateVideoList(l)))
.doOnNext(l -> kalturaVideoList.addAll(l))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe();
注意-.doOnNext(l -> VideoActivity.this.runOnUiThread(() -> fragment.updateVideoList(l)))
之后你可以随时使用flatmap()
,并且doOnNext()
会在之前执行flatmap()
doOnNext()
Simon Baslé在这里很好地解释了:
doOnNext
用于副作用:您希望在流的中间步骤中对项目排放做出反应(例如记录),例如在过滤流之前,用于记录等横向行为,但您仍然希望该值向下传播溪流。
onNext
更最终,它消耗价值。