RxJava替代map()运算符来保存发出的项目

时间:2015-05-10 09:17:57

标签: android retrofit rx-java

我使用Retrofit与REST API进行交互,RxJava会操作我收到的数据。

在下面的代码片段中,我进行了一次API调用,并使用map运算符保存我收到的数据,然后继续对流进行其他操作。

retrofitApi.registerDevice(mDevice)
           .map(new Func1<Device, Device>() {
               @Override
               public Device call(Device device) {
                  // The only purpose of the map() operator 
                  // is to save the received device.
                  magicBox.saveDeviceId(device.getId());
                  return device;
               }
           })
           .otherOperations()...

我的问题是:这个工作有更好的操作员吗?我觉得我误用了map运营商。

2 个答案:

答案 0 :(得分:7)

关注Egor's answer我做了一些研究,基于Dan Lew's blogpostthis question,正确答案似乎是  doOnNext

答案 1 :(得分:3)

看起来doOnEach()正是您正在寻找的,但是我自己没有尝试过。