我是 Spring webflux 的新手。需要理解为什么即使数据不为空也会调用 Mono.switchIfEmpty 运算符。
示例代码:
public static void main(String[] args) {
Mono.just("test1")
.flatMap(val -> {
System.out.println("test2");
return Mono.just("test2");
})
.switchIfEmpty(method1())
.subscribe(s -> System.out.println(s));
}
private static Mono<String> method1() {
System.out.println("test3");
return Mono.empty();
}
Run Code Online (Sandbox Code Playgroud)
输出
测试3 测试2 测试2