Javascript 为控制器运行$http的服务

Javascript 为控制器运行$http的服务,javascript,angularjs,Javascript,Angularjs,我有多个控制器需要使用使用$http的自定义服务。我做了这样的事 .service('getDB', function($http){ return { fn: function(){ return $http({ url: "http://example.com", method: "GET" }); } } }) .controller('myCtrl', functio

我有多个控制器需要使用使用$http的自定义服务。我做了这样的事

.service('getDB', function($http){
   return {
      fn: function(){

        return $http({
            url: "http://example.com",
            method: "GET"
        });

      }
   }
})

.controller('myCtrl', function($scope, getDB) {
console.log(getDB.fn());
}

在getDB.fn()的console.log中,我看到$promise,如何获取响应数据?

$http返回一个promise。这里可以理解它的实现:

为了履行您的承诺,您必须做到以下几点:

.controller('myCtrl', function($scope, getDB) {
    getDB.fn(something).then(function(result){
         // The result can be accessed here
    }, function(error){
         //If an error happened, you can handle it here
    });
}
以下是传递参数的方法:

.service('getDB', function($http){
 return {
   fn: function(something){

    return $http({
        url: "http://example.com/" + something,
        method: "GET"
    });

   }
 }
})

getDB.fn().success(函数(数据){})
为了更清楚地说明他是如何通过调用
fn()
来“获取”响应数据的,也许可以在
then(){}
partthen()中添加return语句,它比success()更好?我可以将param传递给服务吗?@AaronMusktin:我已经编辑了我的答案。
.success()
.then
之间没有太大区别。只要在你的应用程序中的任何地方都使用相同的,它就会更容易发展