Javascript 在angualrjs中处理两个异步调用?

Javascript 在angualrjs中处理两个异步调用?,javascript,angularjs,asynchronous,angular-promise,Javascript,Angularjs,Asynchronous,Angular Promise,我目前还不熟悉angularjs的promise概念,发现自己被困在异步金字塔中 这种情况是一个异步函数,它成功调用另一个异步函数2。所需的输出是在两个函数完全执行后执行一些操作 // Inside Controller ServiceName.AsyncFunc1().then(function(){ alert("Complete"); }) // Inside Service

我目前还不熟悉angularjs的promise概念,发现自己被困在异步金字塔中

这种情况是一个异步函数,它成功调用另一个异步函数2。所需的输出是在两个函数完全执行后执行一些操作

// Inside Controller    
         ServiceName.AsyncFunc1().then(function(){
               alert("Complete");     
         })


// Inside Service    
            app.service('ServiceName', function ($http) {
            return {
                AsyncFunc1 : function()
                {
                       var self = this;
                       return $http.post(url).
                       success(data)
                       {
                            self.AsyncFunc2();
                       }
                },
                AsyncFunc2 : function()
                {
                       return $http.post(url2).
                       success(data)
                       {
                            alert("AsyncFunc2 Complete");
                       }
                },
          }
    });
现在,我想在两个顺序异步调用都完成时调用alertComplete。
但目前我在alertAsyncFunc2完成之前已经完成了alertComplete

如果您希望在两个函数都返回承诺时收到警报消息,则可以使用$q.all

$q.all需要一系列承诺

范例

 $q.all([function1(), function2()])
编辑 好啊如果是这样的话,那么在第二个顺序函数被解析后,您就可以使用它了。根据你的解释,这就是我的理解

(function(){
  angular
    .module('myApp')
    .controller('MyController', MyController);


  function MyController(myService) {

    function secondASyncSuccess() {
      alert("second function is done");
    }

    function firstFuncSuccess() {
     alert("First func is done");
      myService.secondASyncFunction()
        .then(secondASyncSuccess, secondASyncFailure);
    }

    myService.firstASyncFunction()
      .then(firstFuncSuccess, firstFuncFailure);
  }

})();

返回self.AsyncFunc2;,也可以将success改为then.$q.all并行工作,但我希望它是连续的。试试这个。我希望这就是您所说的通过承诺执行顺序$http调用的意思。