I use Retrofit to interact with a REST API and RxJava do manipulate the data I receive.
In the code snippet below I make an API call and use the map operator to save the data I receive before moving on with other operations against the stream.
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()...
My question is: is there a better operator for the job? I feel like I misuse the map operator.
Following Egor's answer I did some research and, based on Dan Lew's blogpost and this question, the correct answer appears to be
doOnNext.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With