RxJava - Combinazione di operatori
Di seguito sono riportati gli operatori utilizzati per creare un singolo osservabile da più osservabili.
Sr.No. | Operatore e descrizione |
---|---|
1 | And/Then/When Combina set di articoli utilizzando gli intermediari Pattern e Plan. |
2 | CombineLatest Combina l'ultimo elemento emesso da ciascun osservabile tramite una funzione specificata ed emetti l'elemento risultante. |
3 | Join Combina elementi emessi da due osservabili se emessi durante l'intervallo di tempo del secondo elemento emesso da osservabili. |
4 | Merge Combina gli elementi emessi di osservabili. |
5 | StartWith Emette una sequenza di elementi specificata prima di iniziare a emettere gli elementi dalla fonte Observable |
6 | Switch Emette gli elementi più recenti emessi da Observables. |
7 | Zip Combina elementi di osservabili in base alla funzione ed emette gli elementi risultanti. |
Esempio di combinazione di operatori
Crea il seguente programma Java utilizzando qualsiasi editor di tua scelta, ad esempio C: \> RxJava.
ObservableTester.java
import io.reactivex.Observable;
//Using combineLatest operator to combine Observables
public class ObservableTester {
public static void main(String[] args) {
Integer[] numbers = { 1, 2, 3, 4, 5, 6};
String[] letters = {"a", "b", "c", "d", "e", "f", "g"};
final StringBuilder result = new StringBuilder();
Observable<String> observable1 = Observable.fromArray(letters);
Observable<Integer> observable2 = Observable.fromArray(numbers);
Observable.combineLatest(observable1, observable2, (a,b) -> a + b)
.subscribe( letter -> result.append(letter));
System.out.println(result);
}
}
Verifica il risultato
Compila la classe usando javac compilatore come segue -
C:\RxJava>javac ObservableTester.java
Ora esegui ObservableTester come segue:
C:\RxJava>java ObservableTester
Dovrebbe produrre il seguente output:
g1g2g3g4g5g6