Я выставляю конечную точку, используя Spring Boot и Webflux, который возвращает бесконечный поток чисел, по одному каждую секунду:
@GetMapping(value = "/infinitestreamflux", produces = MediaType.APPLICATION_STREAM_JSON_VALUE)
@CrossOrigin(origins = "http://localhost:4200")
public Flux<Long> returnInfiniteStreamFlux() {
return Flux.interval(Duration.ofSeconds(1))
.log();
}
Если я позвоню localhost: 8080 / infinitestreamflux из моего браузера все отлично работает. Результаты корректно отображаются по мере их поступления.
Я бы хотел заархивировать тот же результат, используя Angular 8, но на странице ничего не отображается.
Это мой тестовый компонент:
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
infiniteStreamFlux;
constructor(private http: HttpClient) {}
ngOnInit(): void {
this.http.get('http://localhost:8080/infinitestreamflux')
.subscribe(data => this.infiniteStreamFlux = data);
}
}
Это мой очень простой шаблон:
{{infiniteStreamFlux}}
Из журнала моего сервера я ясно вижу, что результаты отправляются. и из Chrome Dev Tools Я обнаружил, что значения приходят каждую секунду, даже если они не отображаются на вкладке предварительного просмотра. В конце концов страница оказывается пустой.
Как решить проблему?