RxJava - łączenie operatorów
Poniżej znajdują się operatory, które są używane do tworzenia pojedynczego Observable z wielu Observable.
Sr.No. | Operator i opis |
---|---|
1 | And/Then/When Połącz zestawy przedmiotów za pomocą pośredników wzorca i planu. |
2 | CombineLatest Połącz najnowszy element wyemitowany przez każdy Observable za pośrednictwem określonej funkcji i wyemituj wynikowy element. |
3 | Join Połącz elementy wyemitowane przez dwa Observables, jeśli wyemitowano w ramach czasowych drugiej Obserwowalnej emitowanej pozycji. |
4 | Merge Łączy wyemitowane elementy Observables. |
5 | StartWith Emituj określoną sekwencję elementów przed rozpoczęciem emitowania elementów ze źródła Observable |
6 | Switch Emituje najnowsze elementy emitowane przez Observables. |
7 | Zip Łączy elementy Observables na podstawie funkcji i emituje wynikowe elementy. |
Przykład łączenia operatorów
Utwórz następujący program w języku Java, używając dowolnego wybranego edytora, na przykład w 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);
}
}
Sprawdź wynik
Skompiluj klasę przy użyciu javac kompilator w następujący sposób -
C:\RxJava>javac ObservableTester.java
Teraz uruchom ObservableTester w następujący sposób -
C:\RxJava>java ObservableTester
Powinien dać następujący wynik -
g1g2g3g4g5g6