原生的 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 勾销多个申请。