2015-07-01 60 views
1

我有一個改進服務,它返回一個Observable並在每次加載時保存它。RXJava將函數應用於Observable中的每個元素並返回它的可觀察值

我的改裝服務:

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

而且功能:

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

但如果你看到我只是不保存並返回相同的對象,有沒有簡單的方法?

+0

你找'doOnEach' https://github.com/ReactiveX/RxJava/wiki/Observable-Utility-Operators#dooneach? – LordRaydenMK

回答

5

您正在尋找doOnNext

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

它調用的動作,簡單地接受發射項目。
注意,上觀察者的線程doOnNext電話

1

也許它能夠更好地使用:

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

地圖被用於將一些改變每個項目。

+0

但我返回觀察者,我想將其「祕密」應用於訂戶 – Caipivara

+0

你是什麼意思與「祕密」? –

+0

不確定是否存在其他方式? –

相關問題