使用项目反应器实现过滤器

问题描述 投票:0回答:1

我有一个来自 Mongo 的项目列表,我需要通过远程调用结果过滤它们,如下所示:

repository.findByString(String string) // Flux<SomeObject>
    .filter(a -> {
        Boolean result =  remoteClient.getInfo(a.getSomeProperty()).block().getBoolean();
        return result;
    }).map(a -> {
        //Some logic
    })

我不知道如何以非阻塞的方式做到这一点。 请帮忙

java spring-webflux project-reactor
1个回答
0
投票

为此目的,您有

filterWhen

    repository.findByString(String string) // Flux<SomeObject>
            .filterWhen(a -> remoteClient.getInfo(a.getSomeProperty()).map(s -> s.getBoolean()))
            .map(a -> {
                //Some logic
            })
© www.soinside.com 2019 - 2024. All rights reserved.