AngularJS服务使用$ q或换行返回

深的

我对Angular并不陌生,并且看到了几种不同的方法来做很多不同的事情。我尝试订阅Todd Motto的风格指南。示例1是我的配对伙伴编写的代码,示例2是我编写代码的方式。

对于任何一个例子所做的错误或正确的事情,我们将不胜感激。

谢谢。

例子1

angular
  .module('app.services')
  .service('FriendsService', function($q, $http, Auth){
    var baseUrl = 'https://graph.facebook.com/v1.0'

    this.all = function() {
      var defer = $q.defer();
      $http
        .get(baseUrl + '/me/friends', { params: { access_token: Auth.currentUser.accessToken } })
        .then(function(response){
          defer.resolve(response.data.data)
        });

      return defer.promise;
    };
  });

例子2

angular
  .module('app.services')
  .service('FriendsService', function($http, Auth){
    var baseUrl = 'https://graph.facebook.com/v1.0'

    var getAll = function() {
      return $http
            .get(baseUrl + '/me/friends', { params: { access_token: Auth.currentUser.accessToken } })
            .then(function(response){
              return response.data.data;
            });
    };

    return {
      all: getAll
    }
  });

使用FriendsService

FriendsService.all()
  .then(function(data){
    $scope.friends = data;      
  });
杰西的游戏

$http$q内部使用实际上,这些例子几乎是相同的。

但是,示例1并没有捕获到任何拒绝$http它创建了一个多余的承诺,该承诺未$http完全包装

通常优选实施例2。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章