我正在使用发布请求从服务器检索一些值,但是当用户注销时,我需要取消先前触发的对服务器的请求。
我正在使用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.' });
}
};
但是,当我与下一个用户登录时,似乎没有取消请求,因为前一个请求的结果正在加载。
更新:
我无权更改后端,并且代码是遗留的,它连续发出大量调用,我也无法更改。