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

Is this a common pattern? (returning data instead of returning a promise)

本文关键字:返回 数据 承诺 一种 常见 模式      更新时间:2023-09-26

我在《平均机器》一书中遇到了这种模式。

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

在这里,作者从承诺返回返回的数据。

这常见吗?是推荐的做法吗?

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

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