将多个助焊剂合而为一

问题描述

我想在Spring Boot服务中将多个Flux结果收集到一个中。我的方法

import grails.gorm.services.Service

@Service(Person)
interface PersonService {
    int countByName(name)
}

该怎么做?

解决方法

您应该获取列表并将其粘贴到Flux中,然后在其上flatMap并获取每个新的FluxflatMap将自动将所有内容“拼合”为一个单独的Flux

以下示例应显示该概念:

public Flux<String> getData() {

    final List<String> strings = new ArrayList<>();
    strings.add("Foo");
    strings.add("Bar");

    return Flux.fromIterable(strings)
            .flatMap(this::get);
}

private Flux<String> get(String s) {
    return Flux.just(s + "Bar",s + "Foo");
}