javascript - Angular - 返回 API 响应作为 promise

标签 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 对象数组。

最佳答案

您应该为您的客户端 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)
     });
  })
}

关于javascript - Angular - 返回 API 响应作为 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45261980/

相关文章:

javascript - 有什么方法可以改变 DOM 中的属性值并再次加载页面

javascript - ExtJS 4 按钮上的 mousedown/mouseup 事件

javascript - 添加到 Angular 列表功能

javascript - 如何使用 ExtJS 从变量中的 ajax 回调获取响应文本

aws-lambda - AWS Java Lambda 压缩 JSON 响应失败 : "Execution failed due to configuration error: Malformed Lambda proxy response"

angular - Rxjs 组合动态数量的可观察量

angular - Angular 应用的 Nginx 反向代理

angular - 将对象属性绑定(bind)到输入并将值传递给按钮单击 Angular 函数

amazon-web-services - 如何在 AWS HTTP API Gateway 和 Fargate/ECS 上空闲/重新部署后修复间歇性 503 服务不可用?

amazon-web-services - AWS SAM : The REST API doesn't contain any methods