需求场景
用户在点击购买或者其他操作的时候,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/