2017-04-01 1 views
1

Je dois récupérer deux éléments de mon stockage, ce qui me donne deux Promises. Ensuite, j'ai besoin d'utiliser ces deux promesses pour composer une requête HTTP 2 angulaire. Mais je ne peux pas trouver un moyen de composer correctement ces étapes. Je me retrouve toujours avec un Observable<Observable<Response>>.Résolution de plusieurs promesses et envoi d'une requête http angulaire 2

let tokenPromise = this.getToken() 
    let registrationTokenPromise = this.getRegistrationToken() 

    Observable.zip(
     tokenPromise, 
     registrationTokenPromise, 
     (token, registrationToken) => { 
      let headers = this.headers(token) 
      return this.http.post(`${this.apiBase}/users/registration-token`, 
       { registration_token: registrationToken }, 
       headers 
      ) 
     }) 

Comment puis-je résoudre correctement cette option pour recevoir un Observable<Response>?

Répondre

1

Vous obtenez un Observable<Observable<Response>> parce Observable.zip retourne un Observable et le http.post retourne un Observable. Pour déballer un des observables, vous devrez subscribe au Observable.zip

Observable.zip(
     tokenPromise, 
     registrationTokenPromise, 
     (token, registrationToken) => { 
      let headers = this.headers(token) 
      return this.http.post(`${this.apiBase}/users/registration-token`, 
       { registration_token: registrationToken }, 
       headers 
      ) 
     }) 
     .subscribe(response => { 
      //do something with response 
     }) 
+0

Oui, j'ai enchaîné deux 'subscribe' appelle ensemble et maintenant mes feux de demande. Je vous remercie. – tolgap