问美元.所有这些都在解决承诺之前被调用

$q.all then getting called before resolving promises

本文关键字:调用 承诺 解决 美元 所有这些      更新时间:2023-09-26

我有一个MainService,它调用default方法,返回我一个promise

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

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

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

问题是在$q.all完成之前,then功能在这里被触发。

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

可能你应该在默认函数

中返回d