Как отправить запрос GET с помощью Angular 8 и как обработать входящий ответ APPLICATION_STREAM_JSON_VALUE
Я показываю конечную точку с помощью 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 я узнал, что значения поступают каждую секунду, даже если они не отображаются на вкладке предварительного просмотра. В итоге страница оказывается пустой.
Как я могу решить проблему?