axios取消某个发送的http请求和响应

需求场景

用户在点击购买或者其他操作的时候,http响应比较慢

在没有收到反馈前,用户点击返回或者跳转到其他页面时,中断当前页面的请求和响应

实例化CancelToken

首页需要实例化一个CancelToken

import axios from "axios";
const CancelToken = axios.CancelToken;

发起请求

然后在发起某个请求时调用

创建一个变量如cancel用于存储这个请求的取消方法

let cancel;
axios.get('/testApi', {
    cancelToken: new CancelToken(function executor(c) {
    cancel = c;
  })
});

调用CancelToken

在需要取消的时候调用该变量即可

建议先做类型判断,然后充值为初始值,确保axios已实例化一个CancelToken

if (typeof cancel===`function`){
    cancel()
    cancel=null
}

查看http状态

chrome控制面板中,可以看到请求取消的状态

取消请求

参考文档

axios文档地址: http://www.axios-js.com/docs/