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



根据我的理解,在Spring WebFlux反应堆中

Mono<Void>指无效的单声道

Mono.empty()指的是 void,因为在此调用任何内容都会给出一个 null 指针。

这些在使用上有何不同?

Mono<T>是一个泛型类型 - 在您的特定情况下,它将Void类型表示为Mono<Void>

Mono.empty()- 返回在不发出任何项目的情况下完成的单声道。

假设你有一个方法:

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

当您想在返回Mono.empty()的方法调用之后链接任何内容时,它将无法与flatMap一起使用,因为它是a completed Mono。 如果您想在该方法之后继续另一个作业,您可以使用运算符then

doNothing().then(doSomething())

最新更新