Flux.map vs Flux.flatMap 用于一对一操作



我一直看到使用flatMap进行一对一操作的示例,例如:

Flux.just("a", "b", "c")
    .flatMap(s -> Mono.just(s.toUpperCase())

当我预料到的时候

Flux.just("a", "b", "c")
    .map(String::toUpperCase)

(注意:我知道我没有添加订阅者;假设我打印了订阅者或其他内容)

这里使用flatMap是平展返回的Mono,对吧?但是,为什么不直接使用如图所示的map操作呢?仅仅是因为map操作是同步的吗?我缺少什么用例?

我认为你没有遗漏任何东西。根据文档,当您需要在其中完成一些异步工作时,将使用flatMap。

因此,您

在此处使用的操作是简单的map,因为您所需要的只是将一个对象转换为另一个对象(小写变为大写)。

据我所知,如果您想将一个对象变成另一个地图就足够了。如果你想完成额外的异步工作,那就去flatMap。

最新更新