RXJava将函数应用于Observable中的每个元素并返回它的可观察性

时间:2015-07-01 16:12:10

标签: android retrofit reactive-programming rx-java

我有一个改装服务,它返回一个Observable并在每次加载时保存它。

My Retrofit服务:

@GET("url")
Observable<Order> getOrder();

功能:

return SERVICE.getOrder()
            .map(order -> {
                save(order);
                return order;
            });

但是如果你看到我只是保存并返回相同的对象,有没有更简单的方法?

2 个答案:

答案 0 :(得分:6)

您正在寻找doOnNext

return SERVICE.getOrder()
            .doOnNext(order -> {
                    save(order);
            })

它会调用动作,只接受发出的项目 请注意,doOnNext调用观察者的主题

答案 1 :(得分:1)

也许更好用:

        .subscribe(new Action1<StatsChartData>() {
            @Override
            public void call(Order order) {
                save(order);
            }
        });

地图用于对每个项目应用一些更改。