大佬教程收集整理的这篇文章主要介绍了angular – 如何使用RxJS重试超时持续时间?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Angular目前使RxJS成为必需品.我已经使用C#超过10年了,我非常习惯Linq / Lambdas /流利的语法,我认为它构成了Reactive的基础.
我想在重试时使用越来越大的超时值进行http get调用,但是我遇到了一个问题,看看如何做到并仍然保持管道中的所有内容(不使用外部状态).
我知道我可以这样做,但它只会使用相同的超时值重试.
@H_713_7@myhttpObservable.timeout(1000).retry(2);RxJS的文档在很多地方都很差,在这里询问它只是删除了我的问题,这很难过……所以我被迫查看源代码.
有没有办法以每次增加超时持续时间的方式重试,以保持状态在管道中?此外,我想在第一次尝试时保留一个初始超时.
我一开始尝试过与此类似的东西,但实现了令人困惑的重试当操作符并非真正用于我想要的东西时:
@H_713_7@myhttpObservable.timeout(1000).retryWhen((theSubject: Observable<Error>) => { return aNewMyObservableCreatedinHere.timeout(2000); });我知道我可以使用外部状态来实现这一点,但我基本上都在寻找一种优雅的解决方案,我认为,这是他们用反应式编程方式所驱动的.
.retryWhen()
Rx.observable.throw(new Error('splut')) .retryWhen(attempts => Rx.observable.range(1,3) .zip(attempts,i => i) .mergeMap(i => { console.log("delay retry by " + i + " second(s)"); return Rx.observable.timer(i * 1000); }) ).subscribe();
以上是大佬教程为你收集整理的angular – 如何使用RxJS重试超时持续时间?全部内容,希望文章能够帮你解决angular – 如何使用RxJS重试超时持续时间?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。