Как отправить запрос GET с использованием Angular 8 и как обработать входящий ответ APPLICATION_STREAM_JSON_VALUE - PullRequest
1 голос
/ 06 февраля 2020

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

Как решить проблему?

...