Reactor3 Map與FlatMap的區(qū)別示例詳解
Publisher Map 與 FlatMap的區(qū)別
環(huán)境信息:
JDK: Java 8
Reactor: Reactor 3.2.10.RELEASE
Gradle依賴:
compile group: 'io.projectreactor', name: 'reactor-core', version: '3.2.10.RELEASE' compile 'ch.qos.logback:logback-classic:1.2.1' testCompile 'io.projectreactor.addons:reactor-test' testCompile 'junit:junit:4.12'
這幾個(gè)代碼的效果都一樣,打印出11;
Mono.just("1").map(a -> a + "1").subscribe(System.out::println); Mono.just("1").flatMap(a -> Mono.just(a + "1")).subscribe(System.out::println); Flux.just("1").map(a -> a + "1").subscribe(System.out::println); Flux.just("1").flatMap(a -> Flux.just(a + "1")).subscribe(System.out::println);
1 Mono
1.1 map()
Mono<String> monoMap = Mono.just("1").map(a -> a + "1"); monoMap.subscribe(System.out::println);
同步的轉(zhuǎn)換發(fā)布的元素并返回。
1.2 flatMap()
Flux<String> monoFlatMap = Mono.just("1").flatMap(a -> Mono.just(a + "1")); monoFlatMap.subscribe(System.out::println);
異步的轉(zhuǎn)換發(fā)布的元素并返回一個(gè)新的Mono,被轉(zhuǎn)換的元素和新Mono是動(dòng)態(tài)綁定的。
2 Flux
2.1 map()
Mono<String> fluxMap = Flux.just("1").map(a -> a + "1"); fluxMap.subscribe(System.out::println);
同步的轉(zhuǎn)換發(fā)布的元素并返回,轉(zhuǎn)換完后被轉(zhuǎn)換元素被丟棄。
2.2 flatMap()
Flux<String> fluxFlatMap = Flux.just("1").flatMap(a -> Flux.just(a + "1")); fluxFlatMap.subscribe(System.out::println);
異步的轉(zhuǎn)換發(fā)布的元素并他們展開合并到一個(gè)新的Flux并返回。
以上就是Reactor3 Map與FlatMap的區(qū)別示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Reactor3 Map FlatMap區(qū)別的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java中的notyfy()和notifyAll()的本質(zhì)區(qū)別
很多朋友對(duì)java中的notyfy()和notifyAll()的本質(zhì)區(qū)別不了解,今天小編抽空給大家整理一篇教程關(guān)于Java中的notyfy()和notifyAll()的本質(zhì)區(qū)別,需要的朋友參考下吧2017-02-02IntelliJ?IDEA?2022安裝注冊(cè)永久激活
java開發(fā)工具IntelliJ?IDEA深受用戶喜愛,很多朋友對(duì)這個(gè)idea開發(fā)工具比較忠心,一旦有新版本發(fā)出,很多小伙伴就迫不及待的想更新,今天小編給大家?guī)砹薸dea2022.1最新永久激活碼,親測(cè)有效,喜歡的朋友快來下載體驗(yàn)吧2022-08-08spring boot + mybatis如何實(shí)現(xiàn)數(shù)據(jù)庫的讀寫分離
這篇文章主要給大家介紹了關(guān)于spring boot + mybatis如何實(shí)現(xiàn)數(shù)據(jù)庫的讀寫分離的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09DOM解析XML報(bào)錯(cuò)Content is not allowed in prolog解決方案詳解
這篇文章主要介紹了DOM解析XML報(bào)錯(cuò)解決方案詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10java算法導(dǎo)論之FloydWarshall算法實(shí)現(xiàn)代碼
這篇文章主要介紹了算法導(dǎo)論之FloydWarshall算法實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-05-05SpringBoot如何處理@KafkaListener消息
Spring通過KafkaMessageListenerContainer、ConcurrentMessageListenerContainer等組件實(shí)現(xiàn)Kafka消息的監(jiān)聽和處理,并通過@KafkaListener注解將業(yè)務(wù)邏輯與Kafka消費(fèi)者連接起來,Spring?Boot自動(dòng)配置Kafka相關(guān)組件,簡(jiǎn)化了Kafka的使用2024-12-12JAVA內(nèi)存模型和Happens-Before規(guī)則知識(shí)點(diǎn)講解
在本篇文章里小編給大家整理的是一篇關(guān)于JAVA內(nèi)存模型和Happens-Before規(guī)則知識(shí)點(diǎn)內(nèi)容,有需要的朋友們跟著學(xué)習(xí)下。2020-11-11