【问题标题】:Angular 1.x $q to Angular 2.0 betaAngular 1.x $q 到 Angular 2.0 beta
【发布时间】:2016-03-29 22:23:16
【问题描述】:

想要将以下服务转换为 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;
 }

【问题讨论】:

    标签: angularjs service promise angular


    【解决方案1】:

    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();
          });
     }
    

    【讨论】:

    • (不管怎样,你仍然可以使用 Promise)。
    • 我尝试过使用它但没有成功。我从来没有使用过观察者。我正在使用类似 getLoginStatus() { return new Promise((resolve,reject) => gapi.auth.authorize({ client_id: this._dataStore.getData('CLIENT_ID'), scope: this._dataStore.getData(') SCOPES'), 立即: true }, 解决)); }
    猜你喜欢
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 2016-04-13
    • 2017-06-30
    • 1970-01-01
    相关资源
    最近更新 更多