【问题标题】:Resolve multiple promises and send angular 2 http request解决多个承诺并发送 Angular 2 http 请求
【发布时间】:2017-04-01 13:52:44
【问题描述】:

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

【问题讨论】:

    标签: angular typescript rxjs angular2-http


    【解决方案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
            })
    

    【讨论】:

    • 是的,我已经将两个subscribe 调用链接在一起,现在我的请求触发了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-11-26
    • 2014-05-30
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 2015-12-24
    • 1970-01-01
    相关资源
    最近更新 更多