0

我想了解为什么在response流上使用flatmap(),例如this后,例如(直接从引用粘贴的副本)Spring 5 Web反应 - Web客户端 - 在响应流上使用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个或更多项目,然后可以选择完成或错误。

那么响应流究竟发生了什么?这是接收响应流的函数,并且发出类Alert的0个或更多对象?所以如果我们subscribealerts,我们可以通过反应方式让他们通过网络客户端。有人能澄清我是否正确吗?

回答

2

是的,这是正确的。标题的接收是第一个异步阶段,在这一阶段你会得到响应。然后您使用flatMap异步检索正文。所述身体是Flux,因为在某些情况下,您可以获得多个解组对象(例如SSE)。在这里,你可能只会得到一个Alert

相关问题