在 Android 開發中,RxJava 2 是一個強大的非同步編程庫,提供了豐富的操作符來簡化數據流的處理。下麵是一些常用的 RxJava 2 操作符及其使用方法。 Observable.create(): 創建一個新的 Observable,可以在 subscribe() 方法中定義回調函數。 O ...
在 Android 開發中,RxJava 2 是一個強大的非同步編程庫,提供了豐富的操作符來簡化數據流的處理。下麵是一些常用的 RxJava 2 操作符及其使用方法。
-
Observable.create():
創建一個新的 Observable,可以在 subscribe() 方法中定義回調函數。Observable<String> observable = Observable.create(emitter -> { emitter.onNext("Hello"); emitter.onNext("World"); emitter.onComplete(); });
-
Observable.just():
發出已知的項或多個項。Observable<String> observable = Observable.just("Hello", "World");
-
Observable.empty():
立即完成,且沒有任何數據發送到 Observer。Observable<String> observable = Observable.empty();
-
Observable.fromCallable():
在 Observer 調用 subscribe 時開始發射數據,數據從一個 Callable 中產生。每次 call 的返回值都作為 Observable 發射出去。Observable<String> observable = Observable.fromCallable(() -> { Thread.sleep(1000); return "Hello"; });
-
Observable.fromArray():
將數組轉化為 Observable。Observable<String> observable = Observable.fromArray("Hello", "World");
-
Observable.repeat():
重覆發出源 Observable 發出的元素。Observable<String> observable = Observable.just("Hello").repeat();
-
Observable.concat():
連接兩個或更多個 Observable。Observable<String> observable1 = Observable.just("Hello"); Observable<String> observable2 = Observable.just("World"); Observable<String> concatenated = Observable.concat(observable1, observable2);
-
Observable.zip():
通過組合多個 Observables 的發射物來創建一個新的 Observable。當任意一個原始 Observable 發射一個新的值時,zip 操作符都會把所有其他原始 Observables 的值組合起來,併發射這個組合的值。Observable<String> observable1 = Observable.just("Hello"); Observable<String> observable2 = Observable.just("World"); Observable<String> zipped = Observable.zip(observable1, observable2, (s1, s2) -> s1 + s2);
-
Observable.map():
將每個源值通過一個函數轉換成新的值。每次源值發出時,都會調用這個函數。Observable<Integer> observable = Observable.just(1, 2, 3).map(i -> i * 2);
-
Observable.filter():
只允許源值通過一個謂詞函數過濾後的值發出。Observable<Integer> observable = Observable.just(1, 2, 3, 4, 5).filter(i -> i % 2 == 0);
-
Observable.reduce():
將源值通過一個函數累加起來,併發出這個累加的結果。當源 Observable 完成時,reduce 操作符才會發出結果。即使源 Observable 永遠不完成,reduce 操作符也會阻塞並等待所有的值。這個操作符需要一個累計函數和初始值。Observable<Integer> observable = Observable.just(1, 2, 3, 4, 5).reduce((sum, i) -> sum + i);
這些是常用的 RxJava 2 操作符,能夠幫助你簡化非同步編程、處理數據流。合理使用這些操作符,可以讓你的代碼更加清晰和高效。
本文由博客一文多發平臺 OpenWrite 發佈!