RxJava - ตัวดำเนินการที่เชื่อมต่อได้
ต่อไปนี้เป็นตัวดำเนินการที่สามารถควบคุมการสมัครสมาชิกได้อย่างแม่นยำยิ่งขึ้น
ซีเนียร์ | ตัวดำเนินการและคำอธิบาย |
---|---|
1 | Connect สั่งให้ Observable ที่เชื่อมต่อได้เพื่อส่งรายการไปยังสมาชิก |
2 | Publish แปลง Observable เป็น Observable ที่เชื่อมต่อได้ |
3 | RefCount แปลง Observable ที่เชื่อมต่อได้เป็น Observable ธรรมดา |
4 | Replay ตรวจสอบให้แน่ใจว่าผู้ติดตามแต่ละคนเห็นลำดับรายการที่ปล่อยออกมาเหมือนกันแม้ว่า Observable จะเริ่มปล่อยไอเท็มและสมาชิกจะติดตามในภายหลังก็ตาม |
ตัวอย่างตัวดำเนินการที่เชื่อมต่อได้
สร้างโปรแกรม Java ต่อไปนี้โดยใช้โปรแกรมแก้ไขที่คุณเลือกใน C: \> RxJava
ObservableTester.java
import io.reactivex.Observable;
import io.reactivex.observables.ConnectableObservable;
//Using connect operator on a ConnectableObservable
public class ObservableTester {
public static void main(String[] args) {
String[] letters = {"a", "b", "c", "d", "e", "f", "g"};
final StringBuilder result = new StringBuilder();
ConnectableObservable<String> connectable = Observable.fromArray(letters).publish();
connectable.subscribe(letter -> result.append(letter));
System.out.println(result.length());
connectable.connect();
System.out.println(result.length());
System.out.println(result);
}
}
ตรวจสอบผลลัพธ์
รวบรวมคลาสโดยใช้ javac คอมไพเลอร์ดังนี้ -
C:\RxJava>javac ObservableTester.java
ตอนนี้เรียกใช้ ObservableTester ดังนี้ -
C:\RxJava>java ObservableTester
ควรให้ผลลัพธ์ดังต่อไปนี้ -
0
7
abcdefg