问题标签 [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.
java - RxJava2 使用 retryWhen 和过滤器
我一直在玩retryWhen()方法,我注意到如果您在retryWhen()中使用filter( )并且如果filter()失败,则甚至不会执行回调onCompleted()。你能向我解释为什么会这样吗?提前致谢。
工作案例:
工作输出:
但是当我用 observable 更改过滤器时,filter(throwable -> throwable instanceof IOException)
就像处于冻结状态一样。没有触发回调。
android - RxJava 2. 在处理其他不同的项目时延迟重试
我有一个从很多来源获取项目的 observable:
源和项目之间的关系是多对多的,并且在不同的源中,项目可能会自我复制。项目是应该上传到服务器的实体,服务器不接受重复项。为了实现这一点,我合并源并通过它们的 id 区分它们的项目,然后将唯一项目上传到服务器。如下所示:
项目上传可能会发出几个错误,其中一些我应该稍后重试上传项目并继续另一个项目,而“失败”的项目正在等待重试。
我如何推迟重试上传“失败”的项目并继续其他项目,而这个项目正在等待它的尝试?
提前致谢!
angular - angular2 Observable.throw 在 Observable.timer 之后不起作用
retrywhen
当通信失败时,我正在尝试执行http.get
X 次。
在 X 次之后,我想抛出一个连接失败的错误。
如果我只在我DelayWhen
的 an中这样做,Observable.throw
它直接工作正常并在第一次尝试时返回。但是,如果我第一次返回一个Obersvable.timer
,以延迟下一个尝试连接之后的连接,Observable.throw
但它不会被转发到我的上层捕获!?
这个函数是我从另一个服务调用的,并且没有调用 catch。
android - 显示对话框后重试 Retrofit 2 和 RxJava2 调用
我正在使用 Retrofit 2 和 RxJava2 调用 API。如果呼叫失败,在某些情况下(例如没有 Internet 连接),我想向用户显示一个错误对话框并让他重试。
当我使用 RxJava 时,我正在考虑使用,.retryWhen(...)
但我不知道该怎么做,因为它需要等待用户按下对话框上的按钮。
目前我显示对话框,但它在用户按下任何按钮之前重试。另外,我希望在用户按下“取消”时不会重试呼叫。
这是我目前拥有的代码:
angular - Angular http.get 重试失败后抛出错误
我正在尝试通过重试来实现 Angular5 http.get。我写
如果收到错误 500,这将继续重试 5 次。但是,如果它连续 5 次失败,则返回成功(带有空数据)。我不想要那个。相反,我希望它抛出最后一个错误。
我试图放在.concat(Observable.throw({}))
take() 之后,这很有效,但它没有给我任何信息,例如最近错误的状态代码。
上次重试失败后如何获取最近的错误?
angular5 - Angular 5.2 & RxJS 5.5 HttpInterceptor retryWhen,但更新请求?
我正在尝试拦截 401 响应,在再次尝试请求之前发送刷新令牌请求(但使用不同的标头)。我让它工作,除了retryWhen
不让我修改原始请求标头。所以我一直在尝试使用catchError
,但我似乎无法再次执行请求。
这是我目前的retryWhen
:
如果我换掉retryWhen
:catchError
重要的是我要回来next.handle(newReq)
了,它似乎没有触发请求。如果我将其切换为next.handle(newReq).subscribe()
,请求将触发但不会触发回调。
这是完整的示例retryWhen
:
kotlin - 如何测试 RetryWhen
我对我的 retryWhen 块进行了测试。使用模拟器进行测试时,它可以正常工作。我还有一个检查重试是否通过的测试。但是,有时我的测试会失败。我尝试使用 Scheduler.immediate。但是,这也会导致测试失败。
测试:
在设置中,我有
拆解,我有:
当我取下钩子时,它通过了。但是,有时测试会失败。我怎样才能使测试稳定?
另外,我得到了一个不可观察的 Emitted NoSuchElementException
android - 如何在重试时刷新可观察对象的参数
我正在尝试实现一个自动登录功能,并在自动登录完成后需要更改前一个可观察对象的参数时重试。
所以我创建了一个函数
并以这种方式应用它:
也试过这种方式:
}
问题是,在重试请求时登录后,用户没有更新。
我做错了什么?
angular - 在接收到某个 http 状态时重试 http 调用
我正在尝试捕获并重试 103 Http 错误状态响应。如果服务器理解请求并将开始处理它但资源立即不可用,则服务调用返回 103。我想做的是当我收到 103 时,我想在每 5 秒后重试获取资源最多 5 次,最后我希望它超时并返回 404 错误。这是我到目前为止所拥有的
使用 getError() 函数,我试图模仿 103,因为服务器尚未发送 103。也许 getError() 不能很好地表示 httpError 响应。我不确定如何重现并抛出可观察到的错误。
无论如何,这个设置不起作用。它调用 getError(),失败并一直到 console.log('status is 103'),然后什么都没有。任何帮助表示赞赏。
angular - 时间过长时重试连接
当呼叫在挂起时停留超过几秒钟时,Angular 中是否可以重试连接?