Reactor3 Map与FlatMap的区别示例详解
更新时间:2023年08月23日 17:31:59 作者:Weison Wei
这篇文章主要为大家介绍了Reactor3 Map与FlatMap的区别示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
Publisher Map 与 FlatMap的区别
环境信息:
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'
这几个代码的效果都一样,打印出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);
同步的转换发布的元素并返回。
1.2 flatMap()
Flux<String> monoFlatMap = Mono.just("1").flatMap(a -> Mono.just(a + "1")); monoFlatMap.subscribe(System.out::println);
异步的转换发布的元素并返回一个新的Mono,被转换的元素和新Mono是动态绑定的。
2 Flux
2.1 map()
Mono<String> fluxMap = Flux.just("1").map(a -> a + "1"); fluxMap.subscribe(System.out::println);
同步的转换发布的元素并返回,转换完后被转换元素被丢弃。
2.2 flatMap()
Flux<String> fluxFlatMap = Flux.just("1").flatMap(a -> Flux.just(a + "1")); fluxFlatMap.subscribe(System.out::println);
异步的转换发布的元素并他们展开合并到一个新的Flux并返回。
以上就是Reactor3 Map与FlatMap的区别示例详解的详细内容,更多关于Reactor3 Map FlatMap区别的资料请关注脚本之家其它相关文章!
相关文章
mybatis-plus配置拦截器实现sql完整打印的代码设计
在使用mybatis-plus(mybatis)的时候,往往需要打印完整的sql语句,然而输出的日志不是很理想,因为sql语句中的关键字段信息都是用?来代替的,所以本文分享了一下自己写了一个拦截器实现了sql完整的打印,需要的朋友可以参考下2024-06-06Java用BigDecimal解决double类型相减时可能存在的误差
这篇文章主要介绍了Java用BigDecimal解决double类型相减时可能存在的误差,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-05-05
最新评论