中断请求的使用
1 | let cancel = null; |
由代码的使用可以得知,通过在配置项中添加 cancelToken 配置项,该配置项调用的是
源码片段node_modules/axios/lib/cancel/CancelToken.js
1 | /** |
node_modules/axios/lib/adapters/xhr.js
1 | module.exports = function xhrAdapter(config) { |
通过上面的片段可以得知,在配置项中假如 cancelToken 配置项(该配置项是通过 CancelToken 构造函数创建出来的实例,那么该实例上存在 promise 属性,用于表示 promise 的状态),那么在适配器 adapter 中会判断是否存在 cancelToken 配置项,如果存在,则会调用 cancelToken 上的 promise 属性,通过 promise 的 then 方法,当我们改变了该 promise 的状态,就中断请求
模拟实现如下
1 | //CancelToken构造函数 |
我们还需要修改适配器中的代码
1 | function xhrAdapter(config) { |
测试代码
1 | //获取按钮 以上为模拟实现的代码 |