【发布时间】:2017-07-25 04:53:19
【问题描述】:
我试图了解为什么在response 流上使用 flatmap(),例如在this 帖子中(直接从参考中复制粘贴)
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 客户端以反应方式获取它们。有人可以澄清我是否正确吗?
【问题讨论】:
标签: spring reactive-programming project-reactor spring-webflux