打字稿:如何在Promise的Chain-ability中使用异步任务的结果

时间:2017-04-06 19:38:26

标签: javascript typescript ecmascript-5

我有以下打字稿功能

    addSurgeryRequestPageOne(surgeryReservationModel: any): Promise<surgeryReservationModel> {
    return this.http
        .post(this.addSurgeryRequestUrl, JSON.stringify(  surgeryReservationModel ), { headers: this.headers })
        .toPromise()
        .then(response => response.json().Data as surgeryReservationModel)
        //.then((res) => {
        //    item1 = res.SurgeryRequestId
        //}
        .catch(this.handleError);
}

一旦执行了这个函数,我就会回到我想要在下面的函数中传递的executionRequestId。

 getSurgeryRequest(SurgeryRequestId: number): Promise<surgeryReservationModel> {
    return this.http.get(this.getSurgeryRequestUrl + '/' + SurgeryRequestId)
        .toPromise()
        .then(response => response.json().Data as surgeryReservationModel)
        .catch(this.handleError);
}

我该如何解决这个问题?我是打字稿的新手,也很难找到资源。我在ES5上。不使用ES6。

1 个答案:

答案 0 :(得分:0)

这是我对你要做的事情的最好猜测:

addSurgeryRequestPageOne(surgeryReservationModel: any): Promise<surgeryReservationModel> {
    return this.http
        .post(this.addSurgeryRequestUrl, JSON.stringify(  surgeryReservationModel ), { headers: this.headers })
        .toPromise()
        .then(response => response.json().Data)
        .then(data => this.getSurgeryRequest(data.SurgeryRequestId))
        .catch(this.handleError);
}