1

可以说我有ProductSupplier哪些允许通过 id 获取产品。但它有限制,每个请求您只能加载一种产品。

public interface ProductSupplier {
    public Mono<Product> getById(Long productId);
}

现在我在写ProductService我需要按 id 获取产品列表

public interface ProductService {
    ProductSupplier supplier;

    public Mono<List<Product>> getByIds(Collection<Long> ids) {
        return ids.stream()
                  .map(supplier::getById)//Stream<Mono<Product>>
                  //how to get Flux<Product> here?
                  .collectList();
    }
}
4

1 回答 1

1

您可以直接处理通量而不是流:

Flux<Product> flux = Flux
  .fromIterable(ids)
  .flatMap(supplier::getById);
于 2020-09-11T16:07:56.783 回答