我在 StackOverflow 上看到有人建议为 AngularJS 服务提供回调函数的答案。
app.controller('tokenCtrl', function($scope, tokenService) {
tokenService.getTokens(function callbackFn(tokens) {
$scope.tokens = tokens;
});
});
app.factory('tokenService', function($http) {
var getTokens = function(callbackFn) {
$http.get('/api/tokens').then (function onFulfilled(response) {
callbackFn(response.data);
});
};
return {
getTokens: getTokens
};
});
这在我看来是一种反模式。该$http
服务返回的Promise和具有.then
方法执行回调函数感觉就像控制的不健康的反转。
一个人如何重因子这样和代码如何解释为什么原始的方式是不是一个好主意?