这是一种常见的模式吗? (返回数据而不是返回承诺)
Is this a common pattern? (returning data instead of returning a promise)
我在书上遇到过这种模式'Mean Machine'。
直到现在,我一直以为你总是 return 来自服务的承诺(对控制器),然后你在你的控制器中处理 .success
或 .then
。
在这里,作者正在return从 promise 中提取 returned 数据。
这常见吗?这是推荐的做法吗?
.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/
我在书上遇到过这种模式'Mean Machine'。
直到现在,我一直以为你总是 return 来自服务的承诺(对控制器),然后你在你的控制器中处理 .success
或 .then
。
在这里,作者正在return从 promise 中提取 returned 数据。
这常见吗?这是推荐的做法吗?
.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/