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

时间:2017-04-01 13:52:44

标签: angular typescript rxjs angular2-http

我需要从我的存储中获取两件东西,这给了我两个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>

1 个答案:

答案 0 :(得分:1)

您收到Observable<Observable<Response>>因为Observable.zip返回Observablehttp.post返回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
        })