2017-04-01 56 views
1

我需要從我的存儲中取兩件東西,這給我兩個Promises。接下來,我需要使用這兩個承諾來組成一個角度爲2的HTTP請求。但我無法找出正確組合這些步驟的方法。我總是以Observable<Observable<Response>>結束。解決多個承諾併發送角度2 http請求

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

我該如何正確解決這個問題以獲得Observable<Response>

回答

1

由於Observable.zip返回Observablehttp.post返回Observable,因此您收到Observable<Observable<Response>>。爲了解開了可觀的一個,你需要subscribeObservable.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

是的,我已經鏈接兩個'subscribe'叫我的請求,火災一起,現在。謝謝。 – tolgap