Mono.mapNotNull(....) 和 Mono.flatMap(Mono.justOrEmpty(....)) 之间的区别
A difference between Mono.mapNotNull(....) and Mono.flatMap(Mono.justOrEmpty(....))
作为 Project Reactor 的新手,我正在努力研究文档。但是我仍然无法弄清楚以下(伪)代码之间是否存在任何实际差异:
aMonoObject
.flatMap(value -> Mono.justOrEmpty(transform(value))
.someOtherProcessing(...)
和
aMonoObject
.mapNotNull(value -> transform(value))
.someOtherProcessing(...)
鉴于 transform
是一个声明如下的转换方法:
@Nullable <T, R> R transform(T value);
activity 图在 docs 中看起来很相似,我不确定我是否理解正确。
提前致谢。
结果将相同,但两者之间存在语义差异。在您的情况下, mapNotNull
是更好的选择,因为它完全可以满足您的需求:转换现有流中的发射值。如果你想开始一个新的流,你可以使用 Mono.justOrEmpty
。
类似的问题是 Mono.just
和 map
运算符之间的区别是什么。
作为 Project Reactor 的新手,我正在努力研究文档。但是我仍然无法弄清楚以下(伪)代码之间是否存在任何实际差异:
aMonoObject
.flatMap(value -> Mono.justOrEmpty(transform(value))
.someOtherProcessing(...)
和
aMonoObject
.mapNotNull(value -> transform(value))
.someOtherProcessing(...)
鉴于 transform
是一个声明如下的转换方法:
@Nullable <T, R> R transform(T value);
activity 图在 docs 中看起来很相似,我不确定我是否理解正确。
提前致谢。
结果将相同,但两者之间存在语义差异。在您的情况下, mapNotNull
是更好的选择,因为它完全可以满足您的需求:转换现有流中的发射值。如果你想开始一个新的流,你可以使用 Mono.justOrEmpty
。
类似的问题是 Mono.just
和 map
运算符之间的区别是什么。