我在我的应用程序中有一个基本的工厂,处理API调用。目前我正在使用以下形式:
.factory('apiFactory', function($http){
var url = 'http://192.168.22.8:8001/api/v1/';
return {
getReports: function() {
return $http.get(url+'reports').then(function(result) {
return result;
});
},
getReport: function(id) {
return $http.get(url+'report/'+id).then(function(result) {
return result;
});
}
}
})
在我的控制器中,我像这样处理承诺:
.controller('exampleController', function($scope, apiFactory) {
apiFactory.getReports().then(
function(answer) {
if (answer.status==200){
if (answer.data.status == "error"){
// DISPLAY ERROR MESSAGE
console.log(answer.data.msg);
}
} else{
// THROW error
console.log('error: ', answer);
}
},
function(error){
console.log('error: ', answer);
}
);
}
}
})
看起来我可以将 Promise 处理移动到 Factory 而不是在我的控制器中处理,但我不确定除了更小的控制器之外还有什么好处。
有人可以解释一下关于这种模式的最佳实践吗?