$ q.all然后在解决承诺之前被调用

时间:2016-06-30 15:22:45

标签: javascript angularjs q

我有MainService来调用default方法,该方法返回promise

default: (function() {
         var d = $q.all([
            service1.get(onFirstSuccess),
            service2.ret(onSecondSuccess)
         ]);

         function onFirstSuccess(){} 
         function onSecondSuccess(){}  
}); 

我从另一个default调用此service方法。

MainService.default().then(function(){
    console.log("this is getting called before onSecondSuccess");
});

问题出在$q.all完成之前,此处正在触发then功能。

1 个答案:

答案 0 :(得分:2)

default: (function() {
    var d = $q.all([
      service1.get(onFirstSuccess),
      service2.ret(onSecondSuccess)
    ]);

  function onFirstSuccess(){} 
  function onSecondSuccess(){}          
   return d;
  }); 

可能是您应该在默认功能

中返回d