我需要从我的存储中获取两件东西,这给了我两个Promises
。接下来,我需要使用这两个promise来组成一个有角度的2 HTTP请求。但我无法找到正确组成这些步骤的方法。我总是以Observable<Observable<Response>>
结束。
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>
?
答案 0 :(得分:1)
您收到Observable<Observable<Response>>
因为Observable.zip
返回Observable
而http.post
返回Observable
。要解开其中一个观察点,您需要subscribe
到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
})