0
votes

Résultat de la carte d'API à Observables

J'essaie de cartographier la réponse de l'API comme indiqué ci-dessous à l'aide de RXJS

en service, j'ai le suivant xxx

dans mon composant, je voudrais mapper le Réponse aux observables suivants xxx

de sorte que je pourrais être lié mon data $ Observable à l'aide de tuyau ASYNC dans mon modèle comme suit xxx


3 commentaires

Quelle est la forme des données que vous recevez de l'appel http? Je demande parce que je crois que l'interface de réponse devrait changer


Je reçois un objet avec deux articles 1. Objet en-têtes 2. Liste des éléments de données E.g {en-têtes: {}, données: []}


Avez-vous besoin que des données? et pas d'en-têtes?


3 Réponses :


0
votes

Je pense que vous n'êtes intéressé que par l'observable, je vous recommanderais donc de vous inscrire à votre méthode FetchData. Et puis vous pouvez mapper cette réponse. Par exemple:

myservice.fetchData().subscribe(
      (data)=>{
        //Map your response here  
      }
    )


1 commentaires

Le but est de souscrire à l'observable avec le tuyau asynchrone afin de ne pas aider à souscrire à l'intérieur du composant.



1
votes

Vous pouvez utiliser la carte RXJS MAP CODE> OPLACE pour obtenir ce dont vous avez besoin comme indiqué ci-dessous:

headers$: Observable<Headers>;
data$: Observable<Array<Data>>;

onInit(){
   const response = this.myservice.fetchData();
   this.headers$ = response.pipe(map(resp => resp.headers));
   this.data$ = response.pipe(map(resp => resp.data));
}


0 commentaires

2
votes

Vous pouvez manipuler un flux à l'aide des opérateurs RXJS, mais dans votre cas, vous devez intégrer vos observables avec un flux donné.

La solution rapide serait de mapper chaque observable à l'infromation souhaitée: P>

<div *ngFor="let item of response.data">
   {{ Whatever }}
</div>


0 commentaires