【问题标题】:Spring Boot Webclient - MergeSpring Boot Webclient - 合并
【发布时间】:2021-03-02 10:59:02
【问题描述】:

我想合并 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 方法调用数据库,但该数据尚未更新。如果我再次拨打电话,我会得到更新的数据。

【问题讨论】:

    标签: java spring spring-boot spring-webflux project-reactor


    【解决方案1】:

    您需要concatWithfromCallable 来确保在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)));
    
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-14
      • 2021-09-10
      • 2021-04-05
      • 2019-05-16
      • 2015-10-27
      • 2019-09-17
      • 2022-01-18
      • 2021-10-13
      • 1970-01-01
      相关资源
      最近更新 更多