代码之家  ›  专栏  ›  技术社区  ›  Jin Kwon

我怎样才能用多个web调用和有条件的信号完成flatMapMany?

  •  0
  • Jin Kwon  · 技术社区  · 4 年前

    我需要写一个方法

    • 得到一个 Location 标题形成端点
    • 生成一系列 Some 每个都应该从 位置 从第一个端点获取。
    • 需要返回一个 Flux<Some>

    看起来像这样。

    private WebClient client;
    
    Flux<Some> getSome() {
    
        // Get the Location header from an endpoint
        client
                .post()
                .exchange()
                .map(r -> r.headers().header("Location"))
    
        // Now I need to keep invoking the Location endpoint for Some.class
        // And Some.class has an attribute for pending/completion status.
    
        // e.g.
        while (true)
            final Some some = client
                .get()
                .url(...) // the Location header value above
                .retrieve()
                .bodyToMono(Some.class)
                .block()
                ;
        }
    
    }
    

    如何绘制地图 Mono<String> 通量<一些> 在使用 Some#status 完成属性?

        // should return Flux<Some>
        client
                .post()
                .exchange()
                .map(r -> r.headers().header("Location"))
                .flatMapMany(location -> {
                    // invokes location while retrieved Some#status is not `completed`
                    // @@?
                })
                ;
    
    
    0 回复  |  直到 4 年前
        1
  •  3
  •   Simon Baslé    4 年前

    内部 flatMapMany ,执行检索 Location repeat().takeUntil(loc -> loc.complete()) 它(仍然在 (λ)

    推荐文章