使用Angular2的Google Cloud Endpoint

时间:2016-05-03 15:18:30

标签: javascript google-app-engine angular google-cloud-endpoints

我在后端使用app-engine,使用 Google Cloud Endpoints 来为前端公开API。前端正在使用Angular2。

我已经遵循了here描述的javascript策略(或Angular1的here),这个很有效,但目前并没有与Angular2很好地融合,因为它不是基于Observable的,没有包裹在服务等。

在DefinitelyTyped上,我找到了Google登录API的these类型定义,但仅用于身份验证。

如果没有找到更好的策略,我最终会为Gapi编写一个包装服务,但也许有人有更好的方法?

1 个答案:

答案 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 !!"});
}