乐趣区

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/

退出移动版