其他分享
首页 > 其他分享> > 然后是什么,然后空,然后很多和平面地图很多在春天的webflux?

然后是什么,然后空,然后很多和平面地图很多在春天的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