RxJava - Kết hợp các toán tử
Sau đây là các toán tử được sử dụng để tạo một Observable duy nhất từ nhiều Observable.
Sr.No. | Nhà điều hành & Mô tả |
---|---|
1 |
And/Then/When
Kết hợp các bộ mặt hàng bằng cách sử dụng trung gian Mẫu và Kế hoạch. |
2 |
CombineLatest
Kết hợp mục mới nhất được phát ra bởi mỗi Observable thông qua một chức năng được chỉ định và phát ra mục kết quả. |
3 |
Join
Kết hợp các mục được phát ra bởi hai Có thể quan sát nếu được phát ra trong khung thời gian của mục phát ra Có thể quan sát thứ hai. |
4 |
Merge
Kết hợp các mục được phát ra từ các Quan sát. |
5 |
StartWith
Phát ra một chuỗi các mục cụ thể trước khi bắt đầu phát các mục từ nguồn có thể quan sát được |
6 |
Switch
Phát ra các mục gần đây nhất do Observables phát ra. |
7 |
Zip
Kết hợp các mục của Observables dựa trên chức năng và phát ra các mục kết quả. |
Ví dụ về toán tử kết hợp
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 combineLatest operator to combine Observables
public class ObservableTester {
public static void main(String[] args) {
Integer[] numbers = { 1, 2, 3, 4, 5, 6};
String[] letters = {"a", "b", "c", "d", "e", "f", "g"};
final StringBuilder result = new StringBuilder();
Observable<String> observable1 = Observable.fromArray(letters);
Observable<Integer> observable2 = Observable.fromArray(numbers);
Observable.combineLatest(observable1, observable2, (a,b) -> a + b)
.subscribe( letter -> result.append(letter));
System.out.println(result);
}
}
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:
g1g2g3g4g5g6