从通量转换为单声道
Convert from Flux to Mono
如何将具有 1 个元素的 Flux 转换为 Mono?
Flux.fromArray(arrayOf(1,2,1,1,1,2))
.distinct()
.take(1)
如何将其设为 Mono(1)?
您可以使用 next()
.
而不是 take(1)
这会将 Flux
转换为有值的 Mono
,方法是获取第一个发出的项目,或者如果 Flux 本身为空,则转换为空的 Mono。
或者,您可以在过滤后的 Flux 上使用 single()
这是一个列表:
如果 Flux
中有一个元素,Flux#single
将起作用。例如:flux.take(1).single();
Flux#next
会给你第一个元素。例如:flux.next();
Flux#last
最后一个元素。例如:flux.last();
Flux#singleOrEmpty
类似于 Optional
。例如:flux.take(0).singleOrEmpty();
Flux#collect
,这取决于用例。
flux.collect(Collectors.reducing((i1, i2) -> i1))
.map(op -> op.get());
Flux#elementAt
第 i 个索引。例如:flux.elementAt(1);
Flux#shareNext
表示第一个找到的元素。 flux.shareNext();
Flux#reduce
用于减少操作。例如:flux.reduce((i1,i2) -> i1);
如何将具有 1 个元素的 Flux 转换为 Mono?
Flux.fromArray(arrayOf(1,2,1,1,1,2))
.distinct()
.take(1)
如何将其设为 Mono(1)?
您可以使用 next()
.
take(1)
这会将 Flux
转换为有值的 Mono
,方法是获取第一个发出的项目,或者如果 Flux 本身为空,则转换为空的 Mono。
或者,您可以在过滤后的 Flux 上使用 single()
这是一个列表:
-
如果
Flux#single
将起作用。例如:flux.take(1).single();
Flux#next
会给你第一个元素。例如:flux.next();
Flux#last
最后一个元素。例如:flux.last();
Flux#singleOrEmpty
类似于Optional
。例如:flux.take(0).singleOrEmpty();
Flux#collect
,这取决于用例。flux.collect(Collectors.reducing((i1, i2) -> i1)) .map(op -> op.get());
Flux#elementAt
第 i 个索引。例如:flux.elementAt(1);
Flux#shareNext
表示第一个找到的元素。flux.shareNext();
Flux#reduce
用于减少操作。例如:flux.reduce((i1,i2) -> i1);
Flux
中有一个元素,