解决多个承诺并发送 angular 2 个 http 请求

Resolve multiple promises and send angular 2 http request

我需要从我的存储中取出两件东西,这给了我两个 Promises。接下来,我需要使用这两个承诺来组成一个 angular 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>

你得到一个 Observable<Observable<Response>> 因为 Observable.zip returns 一个 Observablehttp.post returns 一个 Observable。为了打开其中一个可观察对象,您需要 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
        })