如何使用指数退避实现angular.js重试?

时间:2013-02-04 15:12:16

标签: angularjs

我如何在指数后退的angular.js中实现重试逻辑?

  1. 逻辑的正确位置是否在$ httpProvider.requestInterceptors中?
  2. 我可以选择性地选择使用一些$ http服务而不是其他服务吗?

2 个答案:

答案 0 :(得分:2)

这是一篇很老的帖子,但这是我的想法。我使用responseInterceptor。由于您可以返回另一个承诺,您可以决定如何重试。您可以访问拦截器中的$ http config,因此您可以添加特殊配置以确定退避应该是什么(或者是否应用重试逻辑)。

答案 1 :(得分:1)

对于即将到来的人:使用一些预先可用的组件和模块似乎更加Angular。因此,您可以尝试其中一种backo2angular-backoff

每个链接都有用法。但是,不要使用setTimeout而不是Angular,你应该使用$ interval或$ timeout。