Получение данных из службы api без обновления браузера - PullRequest
0 голосов
/ 17 июня 2020

Я использую весеннюю загрузку с angular. Прямо сейчас у меня есть метод, который позволяет получать данные из службы api каждую секунду, но отображается сообщение:

core. js: 6185 ERROR TypeError: Вы указали undefined там, где ожидался поток. Вы можете предоставить Observable, Promise, Array или Iterable.

//service
    ListAutombilesAuto(){
        let headers=new HttpHeaders({'Authorization':this.jwt});
      return this.fiches=this.http.get(this.BaseUrl+'/Automobiles',{headers:headers}).pipe
      (
        merge(this.fiches, interval(1000).pipe(switchMap(() => this.fiches)))
      );

      }

    //component
    ListAuto(){

        this.auth.ListAutombilesAuto().subscribe(data=>{
          this.fiches=data;
          console.log(this.fiches);
        }) // api call

    }

есть ли какие-нибудь решения? спасибо за помощь

1 Ответ

0 голосов
/ 17 июня 2020

Вы ссылаетесь на this.fiches в его первом назначении, поэтому его значение по-прежнему undefined.

Попробуйте исправить свой код следующим образом:

ListAutombilesAuto() {
  let headers = new HttpHeaders({ 'Authorization': this.jwt });

  this.fiches = this.http.get(this.BaseUrl + '/Automobiles', { headers: headers });

  return this.fiches.pipe
    (
      merge(this.fiches, interval(1000).pipe(switchMap(() => this.fiches)))
    );
}

Но на самом деле почему бы не сохранить это просто:

 ListAutombilesAuto() {

   let headers = new HttpHeaders({ 'Authorization': this.jwt });

   return timer(0, 1000)
     .pipe(
       switchMap(() => this.http.get(this.BaseUrl + '/Automobiles', { headers }))
     )

 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...