我在后端使用app-engine,使用 Google Cloud Endpoints 来为前端公开API。前端正在使用Angular2。
我已经遵循了here描述的javascript策略(或Angular1的here),这个很有效,但目前并没有与Angular2很好地融合,因为它不是基于Observable的,没有包裹在服务等。
在DefinitelyTyped上,我找到了Google登录API的these类型定义,但仅用于身份验证。
如果没有找到更好的策略,我最终会为Gapi编写一个包装服务,但也许有人有更好的方法?
答案 0 :(得分:0)
你如何使用Promise?
maybe.service.ts
function getPerson: Promise<FooBarResponse>(){
var arg:ArgFooBarPeople = new ArgFooBarPeople();
return new Promise<FooBarResponse>(
(resolve,reject) =>
{ gapi.client["foobarapi"]["person"].all(arg).execute(
(response:any)=>{
resolve(response);
});
}
);
}
maybe.component.ts
function load(){
this._foobarService.getPerson()then(
(response:FooBarResponse):void =>{
console.log(response);
this.fooBarResponse = response;
}).catch( (error)=>{this.error="error !!"});
}