Combining Observables
In the previous example, we used two Observable
to create a simple sequence of network operations. The second asynchronous operation operated with the result of the first operation and the two operations that executed serially produced a String result that updates the UI.
In our next example, we will run two tasks in parallel and combine the results of both operations using a combining RxJava
operator. Each operation will retrieve asynchronously a JSON Object from the network and combine both results in the JSON Object to produce the JSON String
passed to the UI main Thread
.
Since we only want to emit one Event or an error from the operation, we are going to use, for the first time, a special kind of Observer, Single
.
While an Observable
is able to invoke onNext
, onError
, and onCompleted
Observer functions, a Single
entity will only invoke either onSuccess
or onError
to a SingleSubscriber
:
// Success callback invoked on success void onSuccess(T value); // Callback...