zip和flatMap没有生效
在Reactor 中flatMap和zip等没有生效
最近在项目中使用了 Project Reactor ,但发现代码在写着写着有些地方没有达到效果,有些方法像 zip 、flatMap 等没有执行,那么这个可能是什么原因呢?
1、一个简单的示例代码如下:
public class FluxDemo {
public static Mono<Void> doSomethind01() {
return Flux.just(1, 2, 3, 5, 6).then();
}
public static Flux<Integer> doSomethind02() {
return Flux.just(1, 2, 3, 5, 6);
}
public static void main(String[] args) throws InterruptedException {
// 会有数据打印出来吗 ?
doSomethind01()
.zipWith(Mono.just(10))
.flatMap(tuple -> Mono.just(tuple.getT2() + 10))
.subscribe(i -> System.out.println("doSomethind01返回的是Mono<Void>所以不会执行到这一步"));
// 会有数据打印出来吗 ?
doSomethind02()
.zipWith(Mono.just(10))
.flatMap(tuple -> Mono.just(tuple.getT2() + 10))
.subscribe(i -> System.out.println("result => " + i));
TimeUnit.SECONDS.sleep(10);
}
}
2、示例运行结果
在上面这个示例中,第️个 不会 输出内容,但是第️个却 会输出内容。
3、得到结论
当我们返回 Mono.empty() 或 Mono<Void> 时,有些组合操作,比如 zip,zipWith,flatMap等操作就不会执行。这是因为每个源都需要一个元素来生成它们的输出,而 Mono.empty()或Mono它并不包含元素,所以就不会执行。
zip和flatMap没有生效的更多相关文章
- Spark读取HDFS中的Zip文件
1. 任务背景 近日有个项目任务,要求读取压缩在Zip中的百科HTML文件,经分析发现,提供的Zip文件有如下特点(=>指代对应解决方案): (1) 压缩为分卷文件 => 只需将解压缩在同 ...
- 搭建Spark所遇过的坑
一.经验 1.Spark Streaming包含三种计算模式:nonstate .stateful .window 2.kafka可通过配置文件使用自带的zookeeper集群 3.Spark一切操作 ...
- Scalaz(49)- scalaz-stream: 深入了解-Sink/Channel
一个完整的scalaz-stream有以下几个部分组成:Source -> Transducer -> Sink,用直白文字来描述就是:“输入 -> 传换 -> 输出”.我们已 ...
- scala学习笔记(8): 列表的map,flatMap,zip和reduce
map,flatMap,zip和reduce函数可以让我们更容易处理列表函数. 1 map函数map将一个函数应用于列表的每一个元素并且将其作为一个新的列表返回.我们可以这样对列表的元素进行平方: s ...
- SparkContext, map, flatMap, zip以及例程wordcount
SparkContext 通常作为入口函数,可以创建并返回一个RDD. 如把Spark集群当作服务端那Spark Driver就是客户端,SparkContext则是客户端的核心: 如注释所说 Spa ...
- win10平台mysql5.6.34免安装版(绿色版zip)的配置以及密码和编码设置
平台:win10 X64 mysql: mysql-5.6.34-winx64.zip 以下所写都是本人测试过的,力争无误.上次发布了,可是发现了一些问题,特地查了一下官方文档(我会说我是用有道词典翻 ...
- Scalaz(12)- Monad:再述述flatMap,顺便了解MonadPlus
在前面的几篇讨论里我们初步对FP有了些少了解:FP嘛,不就是F[A]吗?也是,FP就是在F[]壳子(context)内对程序的状态进行更改,也就是在F壳子(context)内施用一些函数.再直白一点就 ...
- 解决IE apk变成zip:Android 手机应用程序文件下载服务器Nginx+Tomcat配置解决方法
APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ...
- 解决IE apk变成zip:Android 手机应用程序文件下载服务器 配置解决方法
APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ...
随机推荐
- linux 常用命令脑图
- 掌握基于AOP事务管理
一.手动管理和半自动工厂模式 二.AOP事务管理 1.表达式中,第一个※是返回值所有类型,service包下一个点意思是service包下的类,两个点意思是service包下的类和其子包下的类也包含, ...
- uni-app仿抖音APP短视频+直播+聊天实例|uniapp全屏滑动小视频+直播
基于uniapp+uView-ui跨端H5+小程序+APP短视频|直播项目uni-ttLive. uni-ttLive一款全新基于uni-app技术开发的仿制抖音/快手短视频直播项目.支持全屏丝滑般上 ...
- POJ1861 Network (Kruskal算法 +并查集)
Network Description Andrew is working as system administrator and is planning to establish a new net ...
- ECSHOP产品内容页新增上传功能
第一步:在 admin\templates\goods_info.htm中 <span class="tab-back" id="article-tab" ...
- 创建一个 Orchard Core CMS 站点
本文通过引用项目模板的方式创建Orchard CMS站点. 创建项目有不同的方式可以为Orchard Core创建站点和模块.你可以在这里了解更多关于它们的信息.在本指南中,我们将使用我们的" ...
- javascript 标签轮播
html <div id="banner-switch"> <!-- 切换内容 --> <div class="notice-content ...
- sql case when 多条件小结
sql case when 多条件 小结 -- 第一种 格式 : 简单Case函数 : -- 格式说明 -- case 列名 -- when 条件值1 then 选择项1 -- when 条件值2 t ...
- P4980-[模板]Pólya定理
正题 题目链接:https://www.luogu.com.cn/problem/P4980 题目大意 \(n\)个物品图上\(m\)种颜色,求在可以旋转的情况下本质不同的涂色方案. 解题思路 既然是 ...
- WPF进阶技巧和实战03-控件(5-列表、树、网格03)
数据视图 数据视图是在后台工作的,用于协调绑定数据的集合.使用数据视图可以添加导航逻辑.实现数据过滤.排序.分组. 当将集合或者DataTable绑定到ItemsControl控件时,会不加通告地在后 ...