角度1.x $ q到Angular 2.0 beta

时间:2015-12-23 13:07:54

标签: angularjs service promise angular

想要将以下服务转换为Angular 2服务。我在这里使用谷歌api。我得到的主要问题是返回Promise,因为它与Angular 1.x不相似。

 getLoginStatus: function () {
      var deferred = $q.defer();
      gapi.auth.authorize({client_id: dataStore.getData('CLIENT_ID'), scope: dataStore.getData('SCOPES'), immediate: true},function(response){
      var res = {};
           res = response;
           deferred.resolve(res);
      });
      return deferred.promise;
 }

1 个答案:

答案 0 :(得分:5)

Angular 2使用RxJS 5 Observables

以下是您的代码的1:1翻译:

getLoginStatus: function () {
      return new Observable(function(observer) {
      gapi.auth.authorize({client_id: dataStore.getData('CLIENT_ID'), scope: dataStore.getData('SCOPES'), immediate: true},function(response){
           observer.next(response);
           observer.complete();
      });
 }