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