乐趣区

关于前端:JS-取消http请求

原生的 XMLHttpRequest 对象勾销申请,用对象实例上的 abort 办法。
代码如下
const xhr = new XMLHttpRequest();
xhr .open(“GET”,”https://www.google.com”, true);
xhr.send();
setTimeout(() => xhr .abort(), 10);

axios 勾销申请
axios 的 cancel token API 是基于被撤销 cancelable promises proposal。
官网文档里写了两种办法勾销 axios 的申请。
其一是应用 CancelToken.source 工厂办法,其二是传递 executor 函数到 CancelToken 的构造函数。

这里我用第二种。
const CancelToken = axios.CancelToken;
let cancel;
axios.get(‘/user/12345’, {
cancelToken: new CancelToken(function executor(c) {

// executor 函数接管一个 cancel 函数作为参数
cancel = c; // 把执行勾销的函数赋给 cancel

})
});

// 勾销申请
cancel();

举个理论应用的例子

注: 能够应用同一个 cancel token 勾销多个申请。

退出移动版