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

标签 java spring reactive-programming spring-webflux reactor

根据我的理解,在 Spring WebFlux reactor
Mono<Void>指的是空单声道
Mono.empty()指的是 void,因为在 this 上调用任何东西都会给出一个空指针。

这些在用法上有何不同?

最佳答案

Mono<T>是通用类型 - 在您的特定情况下它代表 Void输入为 Mono<Void>Mono.empty() - 返回一个完成而不发出任何项目的 Mono。

让我们假设你有一个方法:

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

如果您想在方法调用后链接任何内容,它不适用于 flatMap照原样a completed Mono .
如果您想在该方法之后继续另一项工作,您可以使用运算符 then :
doNothing().then(doSomething())

关于java - Mono<Void> 和 Mono.empty() 有何不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61822820/

相关文章:

java - Vertx 单元测试永远不会完成

java - 错误时如何从Mono <A>返回Mono <B>?

java - ORA-22922 从 kotlin 应用程序将 blob 传递给 oracle 过程

Java 日期格式

java - Spring应用程序-将键/值保留到属性文件而不转义

java - 在启动应用程序之前如何在项目中创建目录?

timer - 暂停/恢复 RX 中的定时器/延迟

java - Postgres 的搜索路径不适用于 Spring/DBCP 数据源

java - 在 Java 中使用引用时的注意事项

java - 无法从 Java 进程使用 taskkill.exe