具体使用
1 | // axios用于取消请求的类 |
查看源码
1 | function CancelToken(executor) { // @param {Function} executor The executor function. |
1 | // xhr.js 相关代码 |
总结
通过cancelToken,创建了一个额外的promiseA,这个promiseA对外暴露了它的resolve方法,这个promise被挂载在config下。
在调用send方法前,添加对promiseA的监听,当promiseA的状态发生变化,就会在promiseA的callback取消请求,并且将axios返回的的promiseB的状态设置为reject,从而取消请求。