RxJava - Условные операторы
Ниже приведены операторы, которые оценивают один или несколько объектов Observable или объектов.
| Sr.No. | Оператор и описание |
|---|---|
| 1 |
All Оценивает все выпущенные элементы на соответствие заданным критериям. |
| 2 |
Amb Испускает все элементы из первого Observable только при наличии нескольких Observable. |
| 3 |
Contains Проверяет, испускает ли Observable конкретный элемент или нет. |
| 4 |
DefaultIfEmpty Выдает элемент по умолчанию, если Observable ничего не испускает. |
| 5 |
SequenceEqual Проверяет, испускают ли два Observable одну и ту же последовательность элементов. |
| 6 |
SkipUntil Отбрасывает элементы, выпущенные первым Observable, пока второй Observable не излучает элемент. |
| 7 |
SkipWhile Отбрасывать элементы, испускаемые Observable, пока данное условие не станет ложным. |
| 8 |
TakeUntil Отбрасывает элементы, выпущенные Observable после того, как второй Observable излучает элемент или завершается. |
| 9 |
TakeWhile Отбрасывать элементы, отправленные Observable после того, как указанное условие становится ложным. |
Пример условного оператора
Создайте следующую программу Java, используя любой редактор по вашему выбору, например, 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);
}
}
Проверить результат
Скомпилируйте класс, используя javac компилятор следующим образом -
C:\RxJava>javac ObservableTester.java
Теперь запустите ObservableTester следующим образом -
C:\RxJava>java ObservableTester
Он должен выдать следующий результат -
No Data
a