Mono<Void> 和 Mono.empty() 有何不同

How are Mono<Void> and Mono.empty() different

据我了解,在 Spring WebFlux 反应器中

Mono<Void> 指的是 void Mono

Mono.empty() 指的是 void,因为在此之上调用任何东西都会得到一个空指针。

它们在用法上有何不同?

Mono<T> 是通用类型 - 在您的特定情况下,它表示 Void 类型为 Mono<Void>

Mono.empty() - return 完成但不发出任何项目的 Mono。

假设您有一个方法:

private Mono<Void> doNothing() {
    return Mono.empty();
}

如果您想在方法调用后链接任何内容,它将无法与 flatMap 一起使用,因为它是 a completed Mono。 如果您想在该方法之后继续另一项工作,您可以使用运算符 then:

doNothing().then(doSomething())