繁体   English   中英

Spring 5 Web Reactive-Web Client-在响应流上使用flatmap()

[英]Spring 5 Web Reactive - Web Client - Use of flatmap() on the response stream

我试图理解为什么在这篇文章中例如在response流上使用flatmap()(直接从引用粘贴粘贴的副本)

final ClientRequest request = ClientRequest.GET(url)
        .accept(MediaType.TEXT_EVENT_STREAM).build();
Flux<Alert> alerts = webClient.exchange(request)
        .flatMap(response -> response.bodyToFlux(Alert.class));

AFAIK,应用于流的flatmap为每个输入值(流中)产生任意数量的值(0 ... n)。 因此,平面图具有产生流的功能。

助焊剂发出0个或更多项目,然后可选地完成或出错。

那么响应流到底发生了什么? 这是获取响应流并发出0类或更多类Alert的对象的函数吗? 因此,如果我们subscribe alerts ,则可以以响应方式通过Web客户端获取alerts 有人可以澄清一下我是否正确吗?

对,那是正确的。 头的接收是第一个异步阶段,此时您将获得响应。 然后,您可以使用flatMap异步检索主体。 所说的主体是Flux ,因为在某些情况下,您可以得到多个未编组的对象(例如SSE)。 在这里您可能只会收到一个Alert

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM