2017-08-25 76 views
0

我想知道是否有办法保存请求以便逐一执行它们而不是所有的一起?使用注入器保持请求Angularjs

请求1 请求2 请求3

如果我收到他们几乎在一起的想法是执行请求1并在此之后请求完成后执行其他人。

不要忘了我想用喷油器做。

在此先感谢!

+2

您需要提供代码以显示您已尝试此操作并且失败。 – Ohjay44

+0

AngularJS服务$注入器似乎对异步注入没有任何支持。您可以下载其他软件包,如async-injector,或者如果您愿意,可以自己创建一个超过$注入器的承诺层 – Alburkerk

回答

0

您可以通过在request方法返回一个承诺持有使用AngularJS拦截,请求:

authInterceptor.$inject = ['$q', '$rootScope']; 
function authInterceptor($q, $rootScope) { 
    return { 
     request: function(config) { 
      var deferred = $q.defer(); 

      if(condition) { 
       deferred.resolve(config) 
      } 

      return deferred.promise; 
     } 
    }; 
} 

在这个例子中,请求将保持到满足某些条件。

你可以做的是保留每个请求的句柄(上面例子中的deferred变量),并通过按照你想要的顺序解析每一个请求来发送它们。