axios取消某个发送的http请求和响应

需求场景

用户在点击购买或者其他操作的时候,http响应比较慢

在没有收到反馈前,用户点击返回或者跳转到其他页面时,中断当前页面的请求和响应

实例化CancelToken

首页需要实例化一个CancelToken

import axios from "axios";
const CancelToken = axios.CancelToken;

发起请求

然后在发起某个请求时调用

创建一个变量如cancel用于存储这个请求的取消方法

let cancel;
axios.get('/testApi', {
     cancelToken: new CancelToken(function executor(c) {
    cancel = c;
  })
});

调用CancelToken

在需要取消的时候调用该变量即可

建议先做类型判断,然后充值为初始值,确保axios已实例化一个CancelToken

if (typeof cancel===`function`){
    cancel()
    cancel=null
}

查看http状态

chrome控制面板中,可以看到请求取消的状态

《axios取消某个发送的http请求和响应》

参考文档

axios文档地址: http://www.axios-js.com/docs/

    原文作者:浅吟轻唱
    原文地址: https://segmentfault.com/a/1190000020741785
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞