首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring 5 Web Reactive - Web客户端-在响应流上使用flatmap()

Spring 5 Web Reactive - Web客户端-在响应流上使用flatmap()
EN

Stack Overflow用户
提问于 2017-07-25 12:53:19
回答 1查看 3.7K关注 0票数 2

例如,在this post中,我试图理解为什么在response流上使用平面映射()(直接从引用复制粘贴)。

代码语言:javascript
复制
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类对象的函数吗?因此,如果我们subscribealerts,我们就可以通过web客户端以一种被动的方式获取它们。有没有人能澄清一下我说的对不对?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-25 16:44:07

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45294205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档