从多个控制器异步调用AngularJS服务中的函数

时间:2016-10-21 09:43:45

标签: angularjs

我有一个AngularJS服务,里面有多种方法 某些方法暴露给控制器以便在进程中添加,这些方法由服务处理,然后由服务广播结果。

但我不清楚我的方法是否在进行中(方法尚未完成处理)并且某些控制器再次调用相同的方法。如何处理这种情况。

另外,我们怎样才能使用信号量这样的顺序 我不想阻止对服务的调用,而是让它们按顺序执行。或者它已经由AngularJS框架完成了?

angular.module('MyAppModule').run(['MyService', function(MyService)
{
    MyService.initService();   
}])
.service('MyService', ['$rootScope', function($rootScope)
{
   this.initService = function()
   {
       // Init
   }  

   // This method is getting called async 
   // Also this method calls multiple methods inside this service 
   this.doSomeTask = function()
   {
       ....

       foo();

       ....
   }

   function foo()
   {
      // Done some long task
   }

   function foo2()
   {
      // Done some long task
   }

   this.doSomeTask2 = function()
   {
      .... 

      foo2();

      ....
   }

}]);

我在这个服务中有多个方法,它们是从控制器异步调用的。

0 个答案:

没有答案