RxJava - Toán tử có điều kiện

Sau đây là các toán tử đánh giá một hoặc nhiều Observable hoặc các mục được phát ra.

Sr.No. Nhà điều hành & Mô tả
1

All

Đánh giá tất cả các mục được phát ra để đáp ứng các tiêu chí nhất định.

2

Amb

Phát ra tất cả các mục từ Có thể quan sát đầu tiên chỉ được cung cấp nhiều Có thể quan sát.

3

Contains

Kiểm tra xem một Observable có phát ra một mục cụ thể hay không.

4

DefaultIfEmpty

Phát ra mục mặc định nếu Observable không phát ra bất kỳ thứ gì.

5

SequenceEqual

Kiểm tra xem hai Bảng quan sát có phát ra cùng một chuỗi các mục không.

6

SkipUntil

Loại bỏ các mục được phát ra bởi Có thể quan sát đầu tiên cho đến khi Có thể quan sát thứ hai tạo ra một mục.

7

SkipWhile

Loại bỏ các mục được phát ra bởi một Observable cho đến khi một điều kiện nhất định trở thành sai.

số 8

TakeUntil

Loại bỏ các mục do một Observable phát ra sau khi một Observable thứ hai phát ra một mục hoặc kết thúc.

9

TakeWhile

Loại bỏ các mục được phát ra bởi một Observable sau khi một điều kiện được chỉ định trở thành sai.

Ví dụ về toán tử có điều kiện

Tạo chương trình Java sau bằng bất kỳ trình soạn thảo nào bạn chọn trong 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);
   }
}

Xác minh kết quả

Biên dịch lớp bằng cách sử dụng javac trình biên dịch như sau -

C:\RxJava>javac ObservableTester.java

Bây giờ hãy chạy ObservableTester như sau:

C:\RxJava>java ObservableTester

Nó sẽ tạo ra kết quả sau:

No Data
a