SpringWebFlux04操作符01map

编程

map操作符示意图如下图所示。

图中上方的箭头是原始序列的时间轴,下方的箭头是经过map处理后的数据序列时间轴。map接受一个Function函数式接口,该接口用于定义转换操作的策略:    

# 在 Flux.java 中

public final <V> Flux<V> map(Function<? super T,? extends V> mapper)

# # 在 Mono.java 中

public final <R> Mono<R> map(Function<? super T, ? extends R> mapper)

下面使用案例阐述map操作符的用法。案例代码如下:

package com.test.reactor;

import reactor.core.publisher.Flux;

import reactor.test.StepVerifier;

/**

* @map操作符测试

*/

public class MapOperatorDemo {

public static void main(String[] args) {

// 生成从1开始的,步长为1的6个整型数据

StepVerifier.create(Flux.range(1, 6)

// 将元素进行立方操作

.map(i -> i * i * i))

// 期望值

.expectNext(1, 8, 27, 64, 125, 216)

// 异常情况模拟

//.expectNext(10, 8, 27, 64, 125, 216)

// 完成信号

.expectComplete()

.verify();

}

}

执行案例代码发现控制台无异常输出。如果修改立方后的数据为expectNext(10, 8, 27, 64, 125,216)将会出现如下异常:

Exception in thread "main" java.lang.AssertionError: expectation "expectNext(10)" failed (expected value: 10; actual value: 1)

 

以上是 SpringWebFlux04操作符01map 的全部内容, 来源链接: utcz.com/z/513215.html

回到顶部