javascript - 使用 axios 和 axios cancel token 取消之前的 post 请求
问题描述
我正在使用发布请求从服务器检索一些值,但是当用户注销时,我需要取消先前触发的对服务器的请求。
我正在使用 Axios 库来发出请求axios - npm。
我正在触发这样的发布请求:
class CancelService extends InternetService {
async triggerPostRequest(params), {
const response = await axios.post(`request`, params, {
headers: {
Accept: 'application/json',
'x-access-token': 'abcd',
'Content-Type': 'application/json',
},
cancelToken: this.manager.source.token,
});
const jsReponse = response.data;
if (response.status === 200) {
jsReponse.success = true;
return jsReponse;
}
return {
success: 'fail',
message: response.message,
};
}
当用户要退出应用程序时,我会像这样取消并刷新 axios 令牌。
const cancelService = new CancelService();
cancelService.cancelRequests();
cancelService.initilize();
CancelService 类如下所示:
class CancelService extends InternetService {
cancelRequests = () => {
if (this.manager && this.manager.source) {
this.manager.source.cancel({ message: 'all request cancelled.' });
}
};
但是,鉴于当我与下一个用户登录时,前一个请求的结果正在加载,因此似乎没有取消请求。
更新:
我无权更改后端,而且代码是遗留代码,它连续进行一堆调用,我也无法更改。
解决方案
推荐阅读
- c# - Git 的 BINGMapsRESTToolkit 项目似乎强制使用 RouteOption Avoid.Highways
- javascript - 为什么`arr.find()`返回`undefined`?
- python-3.x - python 3池映射不遵循mac中的进程指令
- python - Keras Conv2D 自定义内核初始化
- sql-server-2012 - SQL Server 2012 中的数据屏蔽实现。如何控制对用户的访问?
- android - 为按钮添加彩色阴影
- c# - 设置 OxyPlot 图表标题
- javascript - JavaScript FileReader 正在复制 onload 回调
- python - Django celery beat 在 Elastic Beanstalk 上看不到周期性任务
- git - 'git commit' 和 'git status' 矛盾