I am chaining async operations using RxJava, and I'd like to pass some variable downstream:
Observable .from(modifications) .flatmap( (data1) -> { return op1(data1); }) ... .flatmap( (data2) -> { // How to access data1 here ? return op2(data2); })
It seems like a common pattern but I couldn't find information about it.
onNext. An Observable calls this method whenever the Observable emits an item. This method takes as a parameter the item emitted by the Observable. onError. An Observable calls this method to indicate that it has failed to generate the expected data or has encountered some other error.
The advice I got from the Couchbase forum is to use nested observables:
Observable .from(modifications) .flatmap( (data1) -> { return op1(data1) ... .flatmap( (data2) -> { // I can access data1 here return op2(data2); }) });
EDIT: I'll mark this as the accepted answer as it seems to be the most recommended. If your processing is too complex to nest everything you can also check the solution with function calls.
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