我正在关注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对象数组。
答案 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)
});
})
}