java - 何时在 Mono 上使用 .flatMap() 而不是仅仅对值调用函数?

标签 java spring reactive-programming project-reactor reactor

我正在查看一些在 Mono 上调用 .flatMap 的代码 - 我已经浏览了 Rx GitHub 上关于添加此类功能的一些 PR 讨论,但我不太明白为什么有人会这样做:对我来说,flatMap 似乎本质上是为了将函数应用于 1...n 个元素。通过一次函数调用即可将函数应用于 0...1 个元素。

最佳答案

您可以使用.map()只要它是非阻塞的。

否则,你内心的转变将会返回Mono这将在将来完成(例如网络调用),您应该使用 .flatMap 订阅它而不是阻止处理。

flatMap适用于任何 Publisher<T>并适用于任何 0..n哪里n也可以是0 .

如果您需要将一个元素转换为几个元素(例如拆分字符串),那么您可以使用 flatMapIterable ,它的开销低于 flatMap .

关于java - 何时在 Mono 上使用 .flatMap() 而不是仅仅对值调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56637142/

相关文章:

java - 如何使用环境变量将 JVM 参数传递给 Teamcity

validation - Spring验证器默认消息代码无法解析

java - ResultSet 和 Select * 性能

java - 将多部分文件插入数据库

javascript - RxJS 减少不会继续

javascript - Debounce Rx.Observable 并忽略之间发出的值

java - android.R.layout.simple_list_item_1 是什么?

java - 如何在java中给定时间间隔更新数据库中的值?

java - 澄清参数 block 同步的含义

swift - RxSwift 中的 asObserver、asObservable 和 none 有什么区别