[ReactiveX Groovy] map & flatMap & concatMap sample
맵
h tp : // Rea c chi ゔ x. 이오/도쿠멘 타치온/오페라와 rs/마 p. html
output: T
圞圖中可以看到
의서유 Observable 圈圈 집행 action후return
numbers = Observable.from([1, 2, 3, 4, 5]);
numbers.map({it * it}).subscribe(
{ println(it); }, // onNext
{ println("Error: " + it.getMessage()); }, // onError
{ println("Sequence complete"); } // onCompleted
);
1
4
9
16
25
Sequence complete
flatMap
h tp : // Rea c chi ゔ x. 이오/도쿠멘들 온/오페라와 rs/fぁt마 p. html
output: unordered Observables
圞圖中可以看到
Observables 전부 攤平一齊 수입 집행 action 후 return Observables
可以寞一個Observable圈圈變為多個
例如此圖一個圈圈Observable變為兩個菱形Observables
而かつ綠色菱形 2 수출 교만소 이쪽 색 마름모 1 會先 수출
단 순서 문제 시인위 action 유집행 Scheduler 다집행서소 지도
이하 sample위 일반적 집행서소 이슈 의서 수출 결과
// this closure is an Observable that emits three numbers
numbers = Observable.from([1, 2, 3]);
// this closure is an Observable that emits two numbers based on what number it is passed
multiples = { n -> Observable.from([ n*2, n*3 ]) };
numbers.flatMap(multiples).subscribe(
{ println(it); }, // onNext
{ println("Error: " + it.getMessage()); }, // onError
{ println("Sequence complete"); } // onCompleted
);
2
3
4
6
6
9
Sequence complete
concatMap
h tp : // Rea c chi ゔ x. 이오/도쿠멘들 온/오페라와 rs/fぁt마 p. html
output: ordered Observables
圞圖中可以看到
跟flatMap是相似的
可以從一個Observable圈圈變為多個
예여 此圖如果執行與flatMap同樣的アクション
綠色菱形2 즉사 수출 교만 仍會先 수출 후 藍色菱形 1세 회수출
취산 action 유집행 Scheduler 다집행서야
RxJava Observable tranformation: concatMap() vs flatMap()
List<Integer> numbers;
Executor jobExecutor;
DataManager() {
this.numbers = new ArrayList<>(Arrays.asList(2, 3, 4, 5, 6, 7, 8, 9, 10));
this.jobExecutor = JobExecutor.getInstance();
}
Observable<Integer> squareOfAsync(int number) {
return Observable.just(number * number).subscribeOn(Schedulers.from(this.jobExecutor));
}
dataManager.numbers().flatMap(dataManager::squareOfAsync)
dataManager.numbers().concatMap(dataManager::squareOfAsync)
비교 결과 여하.Net
요시오시
可以參考每個 Operator 裡的See Also
Introduction to Rx: xxx
구여
Map -> Select (Introduction to Rx: Select)
FlatMap -> SelectMany (Introduction to Rx: SelectMany)
另外ToList Operator
與.Net ToList 截然不同
Rx시회 1인 Observable물건
h tp : // Rea c chi ゔ x. 이오/도쿠멘들 온/오페라와 rs/와. HTML
단.Net 법시회 傳可列舉內容的多個物件
Reference
이 문제에 관하여([ReactiveX Groovy] map & flatMap & concatMap sample), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/SHUAI/items/4b7d29b47919900d01bf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)