RxJava - operatory warunkowe

Poniżej znajdują się operatory, które oceniają jeden lub wiele wyemitowanych Observables lub elementów.

Sr.No. Operator i opis
1

All

Ocenia wszystkie wyemitowane elementy spełniające podane kryteria.

2

Amb

Emituje wszystkie przedmioty z pierwszego Observable tylko z wieloma Observable.

3

Contains

Sprawdza, czy Observable emituje określony element, czy nie.

4

DefaultIfEmpty

Emituje element domyślny, jeśli Observable niczego nie emituje.

5

SequenceEqual

Sprawdza, czy dwa Observables emitują tę samą sekwencję elementów.

6

SkipUntil

Odrzuca elementy emitowane przez pierwszy Observable, dopóki drugi Observable nie wyemituje elementu.

7

SkipWhile

Odrzuć elementy emitowane przez Observable, dopóki dany warunek nie stanie się fałszywy.

8

TakeUntil

Odrzuca elementy emitowane przez Observable po tym, jak druga Observable emituje element lub kończy działanie.

9

TakeWhile

Odrzuć elementy emitowane przez Observable po tym, jak określony warunek stanie się fałszywy.

Przykład operatora warunkowego

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 defaultIfEmpty operator to operate on an Observable
public class ObservableTester  {
   public static void main(String[] args) {    
      final StringBuilder result = new StringBuilder();
      Observable.empty()
      .defaultIfEmpty("No Data")
      .subscribe(s -> result.append(s));
      System.out.println(result);
      String[] letters = {"a", "b", "c", "d", "e", "f", "g"};
      final StringBuilder result1 = new StringBuilder();
      Observable.fromArray(letters)
      .firstElement()
      .defaultIfEmpty("No data")   
      .subscribe(s -> result1.append(s));
      System.out.println(result1);
   }
}

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 -

No Data
a