RxJava - ตัวดำเนินการตามเงื่อนไข
ต่อไปนี้เป็นตัวดำเนินการที่ประเมินค่า Observables หนึ่งหรือหลายรายการที่ปล่อยออกมา
ซีเนียร์ | ตัวดำเนินการและคำอธิบาย |
---|---|
1 | All ประเมินรายการทั้งหมดที่ส่งออกเพื่อให้เป็นไปตามเกณฑ์ที่กำหนด |
2 | Amb ปล่อยไอเท็มทั้งหมดจาก Observable ตัวแรกที่ให้ Observables หลายตัวเท่านั้น |
3 | Contains ตรวจสอบว่า Observable ส่งเสียงรายการใดรายการหนึ่งหรือไม่ |
4 | DefaultIfEmpty ปล่อยรายการเริ่มต้นหาก Observable ไม่ปล่อยอะไรเลย |
5 | SequenceEqual ตรวจสอบว่า Observables สองตัวปล่อยรายการลำดับเดียวกันหรือไม่ |
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