首页 > 其他分享 >Reactor接口之二

Reactor接口之二

时间:2023-05-06 17:13:48浏览次数:40  
标签:10 Reactor void 接口 之二 Flux Test println public

merge

@Test
public void testMerge() {
    Flux.merge(Flux.just(1,2,3),Flux.range(5,6))
            .subscribe(System.out::println);
}

merge将多个Flux合并成一个Flux。

 

@Test
public void testMerge1() {
    Flux.range(1,5)
            .mergeWith(Flux.just(8,9,10))
            .subscribe(System.out::println);
}

mergeWith和merge相同。

 

@Test
public void testMerge2() {
    Flux.range(0,10)
            .mergeComparingWith(Flux.just(11,-1,-2,-3,-4),Integer::compareTo)
            .subscribe(System.out::println);
}

每个Flux之间排序后合并成一个Flux。输出如下:

mergeComparingWith以Flux的第一个元素比较并排序,是Flux之间的排序,不会改变单个Flux之间的元素顺序。改成:

@Test
public void testMerge2() {
    Flux.range(0,10)
            .mergeComparingWith(Flux.just(-1,-2,-3,-4),Integer::compareTo)
            .subscribe(System.out::println);
}

输出:

 

@Test
public void testMerge3() {
    Flux.merge(Flux.just(Flux.just(1,2,3),Flux.range(-10,5)))
            .subscribe(System.out::println);
}

Flux的元素是Flux,也能合并成一个Flux。嵌套的Flux合并成一个Flux。

 

@Test
public void testMerge4() {
    Flux.mergePriority(Flux.range(1,10),Flux.just(-8,-1,-9))
            .subscribe(System.out::println);
}

mergePriority以自然顺序排序后合并成一个Flux。但是用int类型没有排序。

 

@Test
public void testMerge5() {
    Flux.mergeSequential(Flux.range(1,10),Flux.just(-8,-1,-9))
            .subscribe(System.out::println);
}

与merge不同,mergeSequential发出的值按订阅顺序合并到最终序列中。

concat

@Test
public void testConcat() {
    Flux.concat(Flux.range(1,10),Flux.just("a","b","c"))
            .subscribe(System.out::println);
}

将多个Flux连接成一个Flux。

 

 @Test
public void testConcat1() {
    Flux.concat(Flux.range(1,10),Flux.error(new RuntimeException()),Flux.just("a","b","c"))
            .subscribe(System.out::println);
}

如果遇到异常则停止处理。只打印1到10。

 

@Test
public void testConcat3() {
    Flux.range(1,10)
            .concatWith(t -> {
                t.onNext(20);
                t.onNext(30);
            })
            .subscribe(System.out::println);
}

concatWith和concat相同。
 

@Test
public void testConcat4() {
    Flux.range(1,10)
            .concatWithValues(20,30)
            .subscribe(System.out::println);
}

concatWithValues和concat相同。

 

@Test
public void testConcatDelayError() {
    Flux.concatDelayError(Flux.range(1,10), Flux.error(new RuntimeException()), Flux.just(20,30))
            .subscribe(System.out::println);
}

@Test
public void testConcatDelayError1() {
    Flux.concatDelayError(Flux.range(1,10), Flux.just(20,30),Flux.error(new RuntimeException()))
            .subscribe(System.out::println);
}

上面两个单测运行结果相同,都是1到10,20,30。concatDelayError延迟异常的抛出,如果处理遇到异常,要等处理完后才抛出异常。

标签:10,Reactor,void,接口,之二,Flux,Test,println,public
From: https://www.cnblogs.com/shigongp/p/17377613.html

相关文章

  • 【接口自动化测试】月薪12k必会技术,从0到1学习接口自动化测试,6个操作安排的明明白白
        ​导读:在所有的开发测试中,接口测试是必不可少的一项。有效且覆盖完整的接口测试,不仅能保障新功能的开发质量,还能让开发在修改功能逻辑的时候有回归的能力,同时也是能优雅地进行重构的前提。编写接口测试要遵守哪些原则?测试代码的结构应该是什么样的?接口测试......
  • 聊聊关于,SpringBoot写后端接口
    前言:一个后端接口大致分为四个部分组成:接口地址(url)、接口请求方式(get、post等)、请求数据(request)、响应数据(response)。如何构建这几个部分每个公司要求都不同,没有什么“一定是最好的”标准,但一个优秀的后端接口和一个糟糕的后端接口对比起来差异还是蛮大的,其中最重要的关键点就是......
  • Java获取pdd详情api接口、商品详情、商品描述、宝贝链接获取展示示例
    ​拼多多商品详情就是对拼多多商城中的宝贝的描述了,消费者们在进入到宝贝的详情页面后,可以通过这些描述去了解该款宝贝。其实这样也可以大大的增加商品的转化率。那么它的作用有什么呢?1.突出商品卖点:把商品的特色和突出点写表现出来,很更好的吸引到顾客,让顾客有点击和购买的欲......
  • 与chatGPT谈TyptScript接口问题
    与chatGPT谈TyptScript接口问题问1:能给我说说c#中的inteface与typescript中的inteface的不同与相同吗?答1:C#中的Interface和TypeScript中的Interface有一些相似之处,但也有一些不同之处。相同点:Interface都是用来定义对象的结构和行为的。都支持继承和多态的概念。......
  • 具有前后按钮切换+头图切换联动通用接口(应付不同的联动需要)的图片滑动效果
    -------scroll_tween.js----------CHRD.scroll.tween=function(){varTween={Quart:{easeOut:function(t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b;}},Back:{easeOut......
  • pytest之 为什么要做接口自动化
    行情:会接口自动化15-25k工具类实现接口自动化:增加2-3kPostman+newman+git+jenkinsJmeter+Ant+jenkins 一,既然有这些接口测试工具,为什么要做接口自动化?1.敏捷开发,接口一般数量很大,团队需要实现接口测试,多人协作写用例还需要“版本控制”2.功能太死板,有些接口完全无法实现......
  • 使用Node.js调用Sqlite3模块写的大数据查询接口
    使用Node.js调用Sqlite3模块写的大数据查询接口constsqlite3=require('sqlite3');consthttp=require('http');consturl=require('url');constSqliteDb=async(dbFile)=>{constpri={};pri.db=newsqlite3.Database(dbFile);......
  • E8退回与提交接口
    /**当且仅当userid为当前节点审批人时才可以退回(注:系统管理员ID都不行)*另:退回必须是有设置退回节点"线"的才可以退回*/publicvoidflowReject(intrequestid,intuserid,StringrejectMes){RequestServicerqs......
  • 【IT老齐020】接口幂等性
    【IT老齐020】接口幂等性传统方案业务代码增加前置判断if(数据未更新){ 更新数据}缺点判断因素过多技术问题干扰业务代码通用方案幂等表架构方案nginx+lua+redis请求经过nginx转发到redis,redis查找幂等表是否存在请求id(uuid或请求hash)对应的key幂等表不存......
  • Jboss4集群配置之二:Jboss集群配置实例与负载均衡器配置
    1.前言 2.集群准备知识 3.Jboss集群配置实例概述4.Jboss集群负载均衡器mod_jk配置3.Jboss集群配置实例概述下文中,RubySun 将以实例来叙述Jboss集群配置。该实例包含3个Jboss节点。各节点被动接收负载均衡器转发的请求。各节点间没有横向的联系。4. Jboss集群负载均衡器配置步......