具有多个关联计时器的延迟后的Angular HTTP无限重试

时间:2019-02-14 14:29:40

标签: angular

给出这个

loadSomething(): Observable<SomeInterface> {
  return this.http.get(this.someEndpoint).pipe(retry(3))
}

我可以尝试3次。但是,我目前受命执行以下指示,对于被认为过于重要的特定请求,必须执行以下指示:

  1. 每3秒钟无限尝试一次,直到成功为止。
  2. 如果5秒钟后没有运气。将此日志缓慢登录到控制台。
  3. 如果15秒后没有运气。将此错误记录到控制台。 (不是实际的catchError)
  4. 总结成功。

我想我不是要写答案,但是那两个计时器似乎是从外部连接到原始请求并相关,而http调用和重试是无限的,而与计时器无关。

假设我最终可以钉住RXJS,我也不确定(由于分层的要求)是否所有这些都属于我的HTTPInterceptor,或者因为我不想让10个请求导致10个请求日志。应将其移至某种MyHTTPService

有人可以给我一些建议吗?

编辑:

例如,我想我可以在拦截器请求中设置3个可观察对象,并在成功完成后将其取消,然后将注销推迟到某些错误服务,但这似乎太容易了,因此我必须丢失一些东西。

0 个答案:

没有答案