小编Gya*_*yan的帖子

即使数据存在,Spring WebFlux Mono.switchIfEmpty 也会被调用

我是 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

spring spring-boot project-reactor spring-webflux

3
推荐指数
1
解决办法
6286
查看次数