Angular - 将API响应作为承诺返回

时间:2017-07-23 05:55:31

标签: javascript angular aws-api-gateway

我正在关注https://angular.io/tutorial/toh-pt6的Angular教程,该教程展示了如何从API调用中检索Json响应,然后将其与promise进行匹配。

具体的例子是:

getHeroes(): Promise<Hero[]> {
  return this.http.get(this.heroesUrl)
         .toPromise()
         .then(response => response.json().data as Hero[])
         .catch(this.handleError);
}

我正在使用AWS API网关,其使用详见http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-generate-sdk-javascript.html

对Typescript和promises都不熟悉,如何修改示例方法以适应Angular教程的结构?

apigClient.methodName(params, body, additionalParams)
    .then(function(result){
      // Add success callback code here.
    }).catch( function(result){
      // Add error callback code here.
    });

在我的示例中,result.data是一个JSON对象数组。

1 个答案:

答案 0 :(得分:1)

您应该为您的客户端API调用创建一个Promise包装器 -

getResult(): Promise<any> {
  return new Promise((resolve, reject) => {
     apigClient.methodName(params, body, additionalParams)
     .then(function(result){
       resolve(result)
     }).catch( function(result){
       reject(result)
     });
  })
}