重试失败的电话和取消先前的电话的JavaScript模式

时间:2019-02-24 14:35:15

标签: javascript vue.js rxjs axios

我有一个基于浏览器的Javascript应用程序(这是Vue应用程序,但不一定相关),可以在状态更改时向服务器发出调用。如果呼叫失败,我将以指数补偿重试该呼叫。如果呼叫失败,并且浏览器中状态的后续更改导致第二次呼叫,则稍后可以通过重试第一次呼叫来覆盖第二次对服务器的更新。

这肯定是一个常见问题,但是我似乎找不到任何示例或插件来处理此问题。我目前使用的是Axios,但选择时比较灵活。

有人能指出我的例子吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

在RxJS中,您可以使用switchMap operator来取消先前的请求以及some library for incremental backoff(或您自己的退避限制)