问题标签 [retrywhen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
562 浏览

rxjs - RXJS:自适应超时

我正在使用 RXJS 6,我尝试使用自适应超时重试(我第一次尝试 1s 超时,如果不成功我重试但 2s 超时,等等...)

看起来超时值在重试时没有更新,我是 RxJS 的新手,我找不到问题。

这里的代码片段:

但我的结果并不是很好:

有什么帮助吗?

0 投票
1 回答
1377 浏览

rxjs - RxJS Observable:使用计数重试,然后使用通知程序

首先,我想使用一个简单的计数重试:

  • 重试源可观察n次数。
  • 然后,发出错误。

(最好在每次重试后立即发出错误,但retry(count)似乎没有这样做。)

如果我理解正确,这是以下行为retry(count)

然后,我想允许用户手动重试。当一个重试通知 observable ( retry$) 发出时,再次重试 observable,之后每次都发出错误。

我尝试使用retryWhen它,但是虽然确实发生了重试,但永远不会发出错误。

我想重试但也发出任何错误,以便在重试运行时可以在用户界面中显示它们。

此外,我不确定如何将其与retry(count). 如果我链接重试运算符,它们会相互触发。

0 投票
2 回答
935 浏览

android - Rxjava - doOnError 完成后如何重试调用

在 doOnError 中完成另一个网络调用,我正在努力重试我的 rxjava Single 调用:

但是在 doOnError 方法内部不能调用 retry 方法。你还有其他建议吗?

0 投票
1 回答
2161 浏览

android - RxJava 的 retryWhen 操作符

我正在尝试深入了解 retryWhen 运算符,并且我有一些代码如下。

结果如下所示。

调试:重试当继续...

调试:错误:有异常

问题是当 retryWhen 操作符被触发时?

我假设只有在发生异常时才会触发 retryWhen 运算符。

但结果显然不是我想的那样,

对此有什么想法吗?谢谢!

0 投票
1 回答
855 浏览

angular - 角度 7:如何对 http 拦截器进行单元测试重试

我有一个 HTTP 拦截器,用于添加标头(身份验证)并在发生错误时执行日志记录。目前,它使用自定义重试策略,在生成错误之前尝试调用 Web 服务 3 次。这是在拦截方法中使用的代码:

对重试尝试进行单元测试的最佳方法是什么?我试过写这样的东西:

不幸的是,它不起作用。任何人都可以帮助我并指出正确的方向吗?

谢谢

0 投票
1 回答
806 浏览

angular - HTTP 请求使用拦截器重试特定错误并重试

我有一个调用 GET API 并收到响应的服务。我已经实现了 HTTP 拦截器来正确和全局地处理应用程序中的任何错误。我想做的是,当我的 API 返回特定错误时,例如错误 501,我需要在每次请求之前重试该请求 n 次和 t 秒延迟。如果我的重试结束,我还想处理一个通用错误(即,如果我在最后一次重试时出错,我想以特定方式处理它)。请帮我弄清楚如何解决这个问题。

这一切都是使用 Angular 6 实现的,使用正确语法的解决方案将不胜感激。

谢谢

0 投票
1 回答
281 浏览

java - rxjava2 中 retrywhen() 发出的 observable 的用途是什么?

我知道如果 Observable 发出一条数据,它会重新订阅,如果 Observable 发出 onError 通知,它会将该通知传递给观察者并终止。问题是,如果我发出一个 Obervable.just(1,2),但它不会被观察者接受。那么它的用途是什么?它只是告诉它重新订阅,我什么数据并不重要发射?

并且日志是
retryWhen重试数据1
retryWhen重试数据1

所以 Observable.just(4,5) 不见了?

0 投票
1 回答
59 浏览

angular - AsyncPipe 没有正确更新

我目前正在尝试将 Angular AsyncPipe 与 ngIf 结合使用。生产中的 observable 来自 HttpService,它通过重试策略进行了扩展以进行错误处理。

模板如下所示:

重试策略对错误使用对话框,在对话框关闭后,应重新运行可观察对象。

如果没有发生错误,则模板正在正确加载并且一切正常。但是,在开始时仅发生一个错误并且用户关闭对话框以开始重试后,模板中未正确显示该值。

我也举了一个例子

在示例中,我从 Angular 模拟 HttpService 以显示行为。

0 投票
1 回答
371 浏览

node.js - 在重试时设置延迟动态

每次重试后是否可以动态设置延迟值。我像这样尝试过,但它看起来很精简,它保留了初始设置的值。

0 投票
1 回答
306 浏览

rxjs - rxjs 5.5+ retryWhen not call source observable?

我觉得我在这里错过了一些非常简单的东西。我正在尝试为 fetch 创建一个简单的重试,但只有其中的代码retryWhen被执行。我正在使用 React,所以我没有this.http.get方便。也许这是一个问题from(/*promise*/)?我试图基于 这篇文章的重试逻辑。

这是我希望看到的:

相反,我得到:

所以它只是重复他 retryWhen 间隔中的代码,而不是重复原始的 fetchData 调用。我可能遗漏了一些对我的 RXJS 知识很重要的东西。

这是测试代码: