作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不明白 then 的用法和区别,thenEmpty
, thenMany
和 flatMapMany
在 Flux
或 Mono
在 Spring webflux。
最佳答案
flatMap
对比 flatMapMany
flatMap
返回与承载该方法的类型相同的类型,因此对于
Mono<T>
,
flatMap
返回
Mono
.这意味着内部
Publisher
只能发射一个元素(或者它被截断了)。我们通过
Mono#flatMap
强制执行了这一点。拿个
Function<T, Mono<R>>
.
Publisher
可以发出不止一种元素。因此
Mono#flatMapMany(Function<T, Publisher<R>>)
返回
Flux<R>
.
Mono#flatMap
适用于
异步 但是
一对一源中元素的变换
Mono
,
Mono#flatMapMany
适用于
1 对 N 异步 转换(如 Flux#flatMap)。
then
, thenEmpty
和 thenMany
thenXXX
Mono
上的方法有一个共同的语义:它们忽略源
onNext
发出信号并对完成信号使用react(
onComplete
和
onError
),此时使用各种选项继续序列。因此,这会改变返回的
Mono
的泛型类型。 :
then
只会重放源终端信号,导致 Mono<Void>
表明这永远不会发出任何信号 onNext
. thenEmpty
不仅返回 Mono<Void>
,但它需要一个 Mono<Void>
作为参数。它表示源完成信号和第二个空 Mono 完成信号的串联。换句话说,它在 A 和 B 都按顺序完成时完成,并且不发出数据。 thenMany
等待源完成然后播放来自其 Publisher<R>
的所有信号参数,导致 Flux<R>
这将“暂停”直到源完成,然后在重播其完成信号之前从提供的发布者发出许多元素。 关于spring - 那么 spring webflux 中的 thenEmpty、thenMany 和 flatMapMany 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48254774/
我不明白 then 的用法和区别,thenEmpty , thenMany和 flatMapMany在 Flux或 Mono在 Spring webflux。 最佳答案 flatMap对比 flatM
我是一名优秀的程序员,十分优秀!