Angular long polling real time

a marqué ce sujet comme résolu.

Bonjour tout le monde

j’ai une API REST crée avec Spring boot que je l’ai consomme avec Angular. Ma question je voudrais faire un appel a mon API a chaque fois pour récupérer les nouvelles données comme real time application(socket) j’ai deja tente mais ce ne fonctionne pas

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

  }

merci pour vos aide

+0 -0

Salut, on va avoir besoin d’un peu plus de contexte que ça car là on ne voit même pas ton subscribe (car tant que tu ne subscribes pas à ton observable, il ne va pas émettre de requêtes d’après la doc d’Angular).

De ce que je peux voir. Il faudrait déjà plutôt utiliser switchMap à la place de flatMap. Cela évitera des problème si une des requêtes traîne vraiment et que la suivante est déjà déclenchée (avec flatMap les deux émettront des résultats, alors que switchMap permetta d’annuler la requête précédente).

+0 -0

je suis déjà nouveau sur angular. voila j’ai tente ce que vous ditez mais ce ne fonctionne pas

//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
  
}

voila l’erreur :core.js:6185 ERROR TypeError: You provided 'undefined' where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte