如何使用Flux逐段发送数据?

时间:2019-06-08 08:00:56

标签: spring-webflux project-reactor

我和baeldung tutorialgithub一起玩。 我想看看浏览器是如何逐段检索数据的。所以我添加了简单的控制器方法:

    @GetMapping("/flux")
    public Flux<Employee> getFlux() {
        return Flux.fromIterable(employeeRepository.employeeData.values())
                .delayElements(Duration.ofMillis(2_000))
                .take(3);
    }

但是,当我查看浏览器网络时,经过6秒钟的延迟后,将在一个块中检索数据。 如何正确执行此操作?

1 个答案:

答案 0 :(得分:0)

之所以发生这种情况,是因为您没有提及响应的媒体类型。

尝试此代码。

@GetMapping(value = "/test",produces = MediaType.APPLICATION_STREAM_JSON_VALUE)
public Flux getMapping() {
    return Flux.interval(Duration.ofMillis(300)).map(f -> "HI");
}

谢谢,
维玛列什