我正在查看在Mono上调用.flatMap的一些代码-我已经在Rx GitHub上进行了有关添加此类功能的PR讨论,但是我真的不明白为什么有人会这样做:对我而言,flatMap似乎固有地旨在将函数应用于1 ... n元素。可以通过单个函数调用将函数应用于0 ... 1元素。
答案 0 :(得分:0)
只要.map()
处于非阻塞状态,就可以使用。
否则,您的内部转换将返回Mono
,该转换将在将来完成(例如,网络通话),并且您应使用.flatMap
对其进行订阅,而不是阻塞处理。
flatMap
可以与任何Publisher<T>
一起使用,也可以与任何0..n
也可以是n
的{{1}}一起使用。
如果您需要将一个元素转换成几个元素(例如,拆分一个字符串),则可以使用0
,它的开销要比flatMapIterable
更低。