通过使用axios和axios取消令牌来取消以前的帖子请求

时间:2020-04-13 23:36:26

标签: javascript react-native axios

我正在使用发布请求从服务器检索一些值,但是当用户注销时,我需要取消先前触发的对服务器的请求。

我正在使用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.' });
    }
};

但是,当我与下一个用户登录时,似乎没有取消请求,因为前一个请求的结果正在加载。

更新:

我无权更改后端,并且代码是遗留的,它连续发出大量调用,我也无法更改。

0 个答案:

没有答案