Rxjava 简明教程

RxJava - Conditional Operators

以下是用于计算一个或多个 Observable 或已发出项的运算符。

Sr.No.

Operator & Description

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 发出的项。

Conditional Operator Example

在任意编辑器中使用任何您选择的语言(如 C:\>RxJava) 创建以下 Java 程序。

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);
   }
}

Verify the Result

按照如下方式使用 javac 编译器编译类 −

C:\RxJava>javac ObservableTester.java

现在按照如下所示运行 ObservableTester:

C:\RxJava>java ObservableTester

它应该产生以下输出 −

No Data
a