问题描述
我正在使用 axios 在我的 reactjs 应用程序中发出 GET 请求。这是我目前如何进行此调用的代码片段:
signal = axios.CancelToken.source();
...
...
...
getList() {
const url = baseUrl + "/projects";
const config = {
cancelToken: this.signal.token,headers: { Authorization: "Bearer " + this.context.auth[0].token },};
axios
.get(url,config)
.then((res) => {
console.log(res);
this.setState({
collab_list: res.data,});
})
.catch((err) => {
console.log("Error: ",err.message);
});
}
我发现我的 GET 请求在大多数情况下运行良好,但大约十分之一的情况下它们会停滞并长时间保持挂起状态。在此期间,如果我刷新页面并重做 GET 请求,它可以正常工作并立即返回响应。这是我一段时间以来一直面临的问题,可能是涉及目标服务器的问题(我无法控制)。
所以我想做的是以下内容(基于我发现手动执行的工作):
- 像上面的代码片段一样发出 GET 请求
- 等待响应最多 5 秒钟。
- 如果 5 秒内没有响应,则取消之前的请求,并发起新的 GET 请求。
- 最多重复 N 次。否则失败。
所以基本上我想做的是重试,最多 N 次,如果每次 5 秒内没有响应。
我尝试使用诸如“axios-retry”之类的包,但无法获得预期的效果(不确定我是否正确使用它;也不确定它是否能够处理等待 5 秒的部分.. . 我知道它可以触发对错误代码的重试)。
感谢您的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)