取消或中断 axios 请求

场景

有时候,需要取消或中断 axios 请求,比如在上传一个大文件时,需要中断或者重新选择,这时再让之前的请求继续,就会无意义地占用带宽。

通过 cancel token 取消请求

axios 通过 CancelToken 取消请求。

第一步,创建 cancelTokenSource 对象,它有两个属性:

  • token: 传给请求,标记操作取消该请求。
  • cancel: 是个方法,需要取消时调用

cancelTokenSource 需要保存起来,供后续的使用。

const cancelTokenSource = axios.CancelToken.source();

第二步,发起请求时传入 token ;

axios.get('/foo', {
  cancelToken: cancelTokenSource.token
});

第三步,需要取消时执行 cancel 方法

cancelTokenSource.cancel();

参考: https://stackoverflow.com/questions/38329209/how-to-cancel-abort-ajax-request-in-axios