java Project Reactor中处理数据的最佳方式

x33g5p2x  于 2023-02-11  发布在  Java
关注(0)|答案(1)|浏览(144)

在项目React器中处理数据的最佳方式是什么?
使用flatMap:

public Mono<User> flat() {
    return this.repository.findByName("Jeff")
      .flatMap(
        user -> {
          user.setInfo(new UserInfo("Palo Alto/CA", "Safari", "h1alexbel/transformed"));
          return Mono.just(user);
        }
      );
  }

手柄:

public Mono<User> handle() {
    return this.repository.findByName("Jeff")
      .handle(
        (user, sink) ->
          user.setInfo(
            new UserInfo("Palo Alto/CA", "Safari", "h1alexbel/transformed")
          )
      );
  }

还是别的什么
据我所知,handle有助于将两个操作结合在一起:flatMapfilter

sbdsn5lh

sbdsn5lh1#

最接近handle的是map(不是flatMap)。您可以将其视为mapfilter的组合。与flatMap相比,handlemap都是同步函数。

map-通过应用同步函数转换发出的项。它提供1:1Map,并且每个项都应Map。跳过项的唯一方法是引发异常,然后立即使用onErrorResume处理错误信号。
handle-更灵活,提供0或1Map。使用sink.next()可以通过不发射信号来跳过项目。

在您的情况下,没有理由将用户 Package 到Mono中并使用flatMap。使用map是因为Map是1:1。

相关问题