java - Spring Boot Webclient - 合并
问题描述
我想合并 2 个响应并返回一个 Flux。
private Flux<Response<List<Company>, Error>> loopGet(List<Entity> registries, Boolean status) {
return Flux.fromIterable(registries)
.flatMap(this::sendGetRequest)
.mergeWith(Mono.just(fetch(status)));
}
这就是我正在做的,正在工作,但我希望合并在调用 Mono.just 之前等待(获取(状态))。我会解释一下,sendGetRequest 返回一个 Mono,它进行 API 调用,并将结果保存到 db。随后,合并使用 fetch 方法调用数据库,但该数据尚未更新。如果我再次拨打电话,我会得到更新的数据。
解决方案
您需要concatWith
并fromCallable
确保在 get 请求完成后延迟调用 fetch。
private Flux<Response<List<Company>, Error>> loopGet(List<Entity> registries, Boolean status) {
return Flux.fromIterable(registries)
.flatMap(this::sendGetRequest)
.concatWith(Mono.fromCallable(() -> fetch(status)));
}
推荐阅读
- flutter - Flutter中,如何解决`AnimatedCrossFade`低效设计?
- ajax - Django:Ajas 和反向错误:“str”对象不可调用
- javascript - 在不支持 JQuery 的浏览器上获取 HTML5 必填字段
- elasticsearch - [created_utc] 之后的 Elasticsearch [match] 未知令牌 [START_OBJECT]
- image - 求卫星图API
- vba - Excel VBA 运行时错误“424”需要对象
- javascript - NextJs - next.config.js - CSS 加载器 + 自定义 Webpack 配置
- swift - 带有调试器的断点 Commend 在 xcode 中跳转
- android - react-native run-android 安装时出错,无法在 Windows 10 中运行
- xslt-1.0 - 如何在 DSpace 中显示收获物品的缩略图?