gpt4 book ai didi

kotlin - 将 Spring Webflux Mono 转换为 Either,最好不阻塞?

转载 作者:行者123 更新时间:2023-12-02 04:32:48 25 4
gpt4 key购买 nike

我正在使用 Kotlin 和 ArrowWebClient来自 spring-webflux。我想做的是改造 Mono实例到Either

WebClient 响应成功或 时,通过调用 Either.right(..) 创建 Either 实例当 WebClient 返回错误时,Either.left(..)

我正在寻找的是 Mono 中类似于 Either.fold(..) 的方法我可以在其中映射成功和错误的结果,并返回与 Mono 不同的类型。像这样的东西(伪代码不起作用):

val either : Either<Throwable, ClientResponse> = 
webClient().post().exchange()
.fold({ throwable -> Either.left(throwable) },
{ response -> Either.right(response)})

应该怎样做?

最佳答案

Mono 上没有 fold 方法,但您可以使用两种方法实现相同的目的:maponErrorResume >。它会是这样的:

val either : Either<Throwable, ClientResponse> = 
webClient().post()
.exchange()
.map { Either.right(it) }
.onErrorResume { Either.left(it).toMono() }

关于kotlin - 将 Spring Webflux Mono 转换为 Either,最好不阻塞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50000461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com