如何在AngularJS中的服务中编写多个异步函数

时间:2014-02-12 17:37:13

标签: javascript angularjs

我刚开始使用AngularJS。我不知道如何改变这一点。我试图在一个服务中包含多个功能。 (我希望这不是反对不良做法。)

以下是我的工作代码:

myDataService.async().then(function (d) {            
         $scope.dbCalls = d.d;            
    });

我的服务:

app.factory('myDataService', function ($http) {
// How do you get this bottom line to work?
// this.getAllCalls = function () {
    var myService = {
        async: function () {                
            var promise = $http.post('AngularTest.aspx/FetchCalls', { data: {} }).then(function (response) {
                console.log(response);
                return response.data;
            });
            return promise;
        }
    };
    return myService;
//};  <--Commented out for clarity
});

谢谢!

1 个答案:

答案 0 :(得分:0)

您只需返回一个包含服务属性的对象,然后您就可以将这些属性称为不同的服务方法

像这样:

.service('myService', function() {
    return {
        firstMethod: function() { ... },
        secondMethod: function() { ... },
        thirdMethod: function() { ... }
    }
})

并在控制器/指令

.controller('myCtrl', function(myService) {
    myService.firstMethod();
    myService.secondMethod();
    myService.thirdMethod();
})