0

我在 spring boot 中有一个方法,可以进行多个返回类型字符串的单声道调用。此方法最终将返回所有单声道调用的结果,这些结果随后将转换为 POJO 对象。试过 Mono.zip 但这只接受 8 个元组。有更好的解决方案吗?

例如:

Mono<String> mono1 = <Web client call>
Mono<String> mono2 = <Web client call>
Mono<String> mono3 = <Web client call>
Mono<String> mono4 = <Web client call>
.
.
.
.
.
.
Mono<String> monoN = <Web client call>
4

1 回答 1

1

有一个静态方法Mono允许您使用任意数量的 Monos 来执行此操作:

public static <R> Mono<R> zip(Function<? super Object[],? extends R> combinator, Mono<?>... monos)

参考文档:https ://projectreactor.io/docs/core/release/api/reactor/core/publisher/Mono.html#zip-java.util.function.Function-reactor.core.publisher.Mono...-

在 Kotlin 中,我们可以将其用作

Mono.zip({ it.size }, mono1, mono2)

在这种情况下,您现在将拥有一个Mono<Int>,但您可以根据需要聚合对象。

于 2021-09-02T09:48:19.360 回答