如何获取 Person 而不是 Mono<Person>?

How to get Person instead of Mono<Person>?

关于下面的检索代码,请问如何获取 Person 而不是 Mono 或如何从 Mono 获取 Person?

23.2.3 Request and Response Body Conversion

响应正文可以是以下之一:

Account⟩—⟨序列化而不阻塞给定的Account;暗示一个同步的、非阻塞的控制器方法。

1.7.1. Retrieve

WebClient client = WebClient.create("http://example.org");

Mono<Person> result = client.get()
                      .uri("/persons/{id}", id).accept(MediaType.APPLICATION_JSON)
                      .retrieve()
                      .bodyToMono(Person.class);

一旦您有 Mono<Person> 个可用实例,您有两个选择:

  1. 组合该反应类型(即使用该类型可用的运算符)并使用它将该数据保存在数据存储中,将其用作 HTTP 响应主体等
  2. 或对其调用 Person person = result.block(),这 阻塞 。所以你不应该在反应式应用程序中这样做,因为这可能会完全阻塞你的应用程序可用的几个线程。