这是一种常见的模式吗? (返回数据而不是返回承诺)

时间:2016-03-15 03:25:45

标签: javascript angularjs ajax promise angularjs-service

我在书中找到了这种模式' Mean Machine'。

到目前为止,我认为您总是从服务(向控制器)返回承诺,然后您在控制器中处理.success.then

这里,作者将从promise中返回返回的数据。

这是常见的吗?是推荐练习吗?

  .factory('Auth', function($http, $q, AuthToken) {

        var authFactory = {};

        authFactory.login = function(username, password) {
            return
                $http
                    .post('/api/authenticate', {
                        username: username,
                        password: password
                    })
                    .success(function(data) {
                        AuthToken.setToken(data.token);
                        return data;
                    });
        };
        ...

1 个答案:

答案 0 :(得分:1)

是的,我会推荐这样的解决方案并认为这是一个好习惯。在@scniro响应中,您还需要专门处理错误响应,这会增加复杂性。您的解决方案更清晰,更简洁,更易于阅读。我在这里找到了一篇关于它的好文章http://blog.ninja-squad.com/2015/05/28/angularjs-promises/