1 Mono 创建

Mono.just(1).mergeWith(Flux.just(1, 2, 3)).subscribe(System.out::print);
System.out.println();
Mono.fromSupplier(() -> "Hello").subscribe(System.out::println);
Mono.justOrEmpty(Optional.of("Hello")).subscribe(System.out::println);
Mono.create(sink -> sink.success("Hello")).subscribe(System.out::println);

2 Mono 操作符

    // zip 将多个Mono合并成一个MonoMono.zip(string -> string.length, Mono.just(1), Mono.just(2)).subscribe(System.out::println);System.out.println("---------- 分割线2 ----------");// then 当订阅成功或失败后 返回另外一个publisherMono.zip(string -> string.length, Mono.just(1)).map(getIntegerIntegerFunction()).doOnSuccess(integer -> System.out.println("成功了")).doOnTerminate((a, e) -> System.out.println("结束了")).then(() -> Mono.just(888)).subscribe(System.out::println);System.out.println("---------- 分割线3 ----------");//冷/懒加载 当deferMono被订阅时,才会触发1的feeService()Mono.defer(() -> Mono.just(feeService())) // 1.map(integer -> integer + 1).subscribe(System.out::println);//热加载 Mono.just时,直接触发了1的feeService()Mono.just(feeService()) //1.map(integer -> integer + 1).subscribe(System.out::println);System.out.println("---------- 分割线4 ----------");Mono.delay(Duration.ofMillis(3)).subscribe(System.out::println);TimeUnit.SECONDS.sleep(1);System.out.println("---------- 分割线5 ----------");// using在订阅者取消或者异常时 能执行3将资源清理// true&false暂时没看到区别Mono.using(() -> 1, // 1 数据源integer -> Mono.just(2 + integer), // 2 最终返回integerSource -> System.out.println("清理结果是:" + integerSource), //3 根据4执行3false)// 4 完成前调用 还是 完成后调用.flatMap(integer -> Mono.just(integer + 3)).subscribe(integer -> System.out.println("最终结果是:" + integer));Mono.using(() -> 1, // 1 数据源integer -> Mono.just(2 + integer), // 2 最终返回integerSource -> System.out.println("清理结果是:" + integerSource), //3 根据4执行3true)// 4 完成前调用 还是 完成后调用.flatMap(integer -> Mono.just(integer + 3)).subscribe(integer -> System.out.println("最终结果是:" + integer));Mono<Void> when = Mono.when();Mono.when(Mono.just(1), Mono.just(2), (m1, m2) -> m1 + m2).subscribe(System.out::println);Mono.just(1).concatWith(Mono.just(2)).subscribe(System.out::println);}private static Integer feeService() {//doSomething//call db//calculate feereturn 1;
}private static Function<Integer, Integer> getIntegerIntegerFunction() {return integer -> {integer = integer + 1;System.out.println("----->" + integer);return integer;};
}

返回异常:

Mono.just(1).doOnError(e -> Mono.error(e.getMessage()));

Reactor3 Mono相关推荐

  1. linux ubuntu安装 mono,在Ubuntu 18.04系统中安装Mono及基本使用Mono的方法

    本文介绍在Ubuntu 18.04操作系统中安装Mono及基本使用Mono的方法.Mono是一个基于ECMA/ISO标准开发和运行跨平台应用程序的平台,它是Microsoft .NET框架的免费开源实 ...

  2. mono+jexus 部署之CompilationException

    使用 HelpPage 组件 CompilationException 好不容易在ubuntu上搭建了mono+jexus,欣喜若狂的部署上发布的网站,急忙打开,成功运行. 但是别高兴的太早,当我打开 ...

  3. apktoolkit apk反编译没有文件_重新编译mono——修改apk中Assembly-CSharp.dll并重新打包...

    环境: 操作系统:Mac OSX10.12.6 mono版本:unity2017.1.3p4 NDK版本:android-ndk-r10e 一.指导步骤: 1.通过apktool工具反编译apk 2. ...

  4. mono和monodevelop源码编译安装

    之所以用源码编译的方式安装mono和monodevelop,是因为通过yum安装的mono不是最新版本,而且monodevelop不能建 asp.net MVC3的工程. 而且通过源码安装,可以进一步 ...

  5. 从游戏脚本语言说起,剖析Mono所搭建的脚本基础

    0x00 前言 在日常的工作中,我偶尔能遇到这样的问题:"为何游戏脚本在现在的游戏开发中变得不可或缺?".那么这周我就写篇文章从游戏脚本聊起,分析一下游戏脚本因何出现,而mono又 ...

  6. Ubuntu阿里云搭建Mono.net环境

    查看磁盘信息 我们买的系统默认情况下只是安装了系统,而数据盘需要自己挂载,例如我这里的系统占用20多G,还有40多G的数据盘默认是没有挂载的,首先我们运行df -h查看: root@AY1212241 ...

  7. 使用Mono管理Coyote Linux

    Coyote是一个个人防火墙配置Linux的目的是为了保护家庭或教育网络. 这个防火墙产品牌的个人及教育用途,并提供免费下载:http://coyotelinux.com/ CoyoteLinux u ...

  8. Mono源代码学习笔记:Console类(四)

    NullStream 类 (internal class) 下面就是 mcs/class/corlib/System.IO/NullStream.cs: 01: namespace System.IO ...

  9. mono上运行程序常见问题

    1. System.BadImageFormatException: Invalid method header local vars signature token 0x 65d5b2 File n ...

  10. 扒一扒.net、.net framework、mono和Unity

    zhaichao 标签: .net.net frameworkc#monounity 2017-04-23 14:39 425人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许 ...

最新文章

  1. 召唤超参调优开源新神器:集XGBoost、TensorFlow、PyTorch、MXNet等十大模块于一身...
  2. 带你学python基础:变量和基本数据类型
  3. C++基础--简单Socket通信实例
  4. java 有序set_Java 从Set里面取出有序的记录详解及实例
  5. 程序包org.springframework.stereotype不存在,解决办法
  6. linux gcc 示例_最好的Linux示例
  7. IDEA和mysql的连接
  8. 控制窗口不能拖拉出主窗口 Dialog And Window
  9. python网站框架下载_最受欢迎的7款Python开源框架总结,忍不住收藏了~
  10. libz.so.1: cannot open shared object file: No such file or directory
  11. c语言明解课后答案,《明解C语言》第三章笔记和练习题
  12. QTableWidget
  13. JAVA版村庄哨塔种子_我的世界:TOP18种子,刷怪笼、哨塔和村庄挤在一起,还不来试试?...
  14. 使用RMAN备份与恢复数据库(2)——参数文件的备份与恢复
  15. Overloud TH3 for Mac - 电吉他效果器
  16. 苹果维修服务器gsx查询,手机苹果官网怎么查序列号(苹果gsx免费查询公众号)...
  17. python pdf文件转换word文件
  18. Vue—使用canvas实现电子签名
  19. 知识点3-设计模式与实践
  20. python爬取3万+条评论,解读猫眼评分9.5的《海王》是否值得一看?

热门文章

  1. 最新oss对象储存防红直连 防红代码html静态页面
  2. Layer btnAlign 失效问题解决方法
  3. 360全景倒车影像怎么看_360全景影像怎么看
  4. macbook不能进系统 备份数据_用数据“说话” VOCs治理在线监测系统不能少
  5. Openbravo如何新建一个调用
  6. 【初识Unity】UI游戏:看看你能答对几题?(游戏可下载)
  7. 计算机科学与技术 金海,金海华中科技大学履历
  8. 智能家居加速落地,景联文科技提供数据采集标注服务
  9. ADC采样频率的计算
  10. vue华视电子身份证阅读器的使用II