【发布时间】:2019-12-25 16:16:38
【问题描述】:
我有一个 API 可以通过多种方式返回错误(我知道这不是一个好主意,但它是一个遗留 API)。仅当前一个调用成功时,我才必须连接三个 API 调用,除了某些在有效负载中返回错误(状态为 200)的情况外,我一直在使用这种方法。为此,我想使用 Spring Web Client 并执行以下操作:
Mono
.when(placeOrderCall)
.doOnSuccess(response -> {
if (!isSuccesful(response)) {
throw new Exception("");
}
})
.then(changeSubscription)
.doOnSuccess(response -> {
if (!isSuccesful(response)) {
throw new Exception("");
}
})
.then(httpCall)
.doOnSuccess(response -> {
if (!isSuccesful(response)) {
throw new Exception("");
}
})
.doOnError(error -> System.out.println("Error"))
.block();
但我不能在doOnSuccess 中抛出异常...我想中断流程并将其发送到doOnError。这可能吗?
谢谢!!!
【问题讨论】:
标签: reactive-programming spring-webflux spring-webclient