标签:spring project-reactor spring-webflux
我不明白使用和之间的区别,然后是空,然后很多和flatMapMany在春天webflux上的Flux或Mono.
解决方法:
> flatMap vs flatMapMany
在函数式编程中,flatMap返回的类型与承载该方法的类型相同,因此对于Mono< T>,flatMap返回Mono.这意味着内部发布者只能发出一个元素(或者它被截断).我们通过使Mono#flatMap采用函数< T,Mono< R>>来强制执行该操作.
因此,我们需要一个可以发出多个元素的更多任意Publisher的替代方法.因此,Mono#flatMapMany(函数< T,Publisher< R>>)返回Flux< R>.
TL; DR:Mono#flatMap用于源Mono中元素的异步但一对一的转换,Mono#flatMapMany用于1到N的异步转换(如Flux#flatMap).
>然后,然后空,然后很多
Mono上的所有thenXXX方法都有一个共同的语义:它们忽略源onNext信号并对完成信号作出反应(onComplete和onError),此时用各种选项继续序列.因此,这可以更改返回的Mono的泛型类型:
>然后将重放源终端信号,从而产生Mono< Void>.表明这从未发出任何onNext信号.
> thenEmpty不仅返回Mono< Void>,而且还需要Mono< Void>作为参数.它表示源完成信号和第二个空Mono完成信号的串联.换句话说,当A然后B都顺序完成并且不发出数据时,它就完成了.
>然后许多人等待源完成然后播放来自其发布者< R>的所有信号.参数,导致Flux< R>.这将“暂停”直到源完成,然后在重放其完成信号之前从提供的发布者发出许多元素.
标签:spring,project-reactor,spring-webflux 来源: https://codeday.me/bug/20190715/1464861.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。