Ant*_* Tb 1 project-reactor spring-webflux
有人可以帮助我了解Mono.defer(),Mono.create()和Mono.just()之间的区别吗?如何正确使用?
Mono.just(value) 是最原始的-一旦有了值,您就可以将其包装到Mono中,而下线的订户将得到它。
Mono.defer(monoSupplier)让您提供提供结果Mono实例的整个表达式。该表达式的求值推迟到有人订阅为止。在此表达式内,您还可以使用控制结构Mono.error(throwable)来表示错误状态(您不能使用来表示此情况Mono.just)。
Mono.create(monoSinkConsumer)是最高级的方法,可让您完全控制发射的值。取而代之的是需要返回Mono从回调(如在实例Mono.defer),你在得到控制MonoSink<T>,可以让你通过发射值MonoSink.success(),MonoSink.success(value),MonoSink.error(throwable)方法。Reactor文档包含一些可能的Mono.create用例的好例子:链接到doc。
一般建议是使用功能最弱的抽象来完成此工作:Mono.just -> Mono.defer -> Mono.create。
| 归档时间: |
|
| 查看次数: |
741 次 |
| 最近记录: |