如何在 angular.js 中使用指数回退实现重试逻辑?
- 逻辑的正确位置是在 $httpProvider.requestInterceptors 中吗?
- 我可以选择性地将它与某些 $http 服务一起使用而不是其他服务吗?
如何在 angular.js 中使用指数回退实现重试逻辑?
这是一个旧帖子,但这是我的想法。我会用一个responseInterceptor
. 由于您可以返回另一个承诺,因此您可以决定如何重试。您可以访问拦截器中的 $http config
,因此您可以添加特殊配置来确定回退应该是什么(或者是否应用重试逻辑)。
对于即将到来的人:使用一些预先可用的组件和模块似乎更 Angular。因此,您可以尝试其中一种backo2或angular-backoff
每个链接都有用法。但是不要使用 setTimeout,它不是那么 Angular,你应该使用 $interval 或 $timeout。