axios取消请求

2023/11/19 vueaxios

# axios取消请求

用于在请求时间过久时取消请求

在axios请求配置中加入cancelToken属性,cancelToken : new axios.CancelToken(function(c){}新建一个函数,然后拿到第一个形参c

c赋值给函数外的一个例如 let cancel =null;的变量

这时cancel就变成了一个函数

   axios({
                method: 'GET',
                url: 'http://localhost:3000/posts/1',
                cancelToken : new axios.CancelToken(function(c){
                    cancel=c;
                })
            }).then(response => {
                console.log(response);
            })
1
2
3
4
5
6
7
8
9

调用cancel函数,即可取消请求

 btns[1].onclick = function(){
            cancel();
        }
1
2
3

# 测试

可以用json-server

在参数里加 -delay 时间-d 时间设置响应延迟,毫秒为单位

# 判断上一次请求成功与否

在请求最后回调函数里将cancel变为空

then(response => {
                console.log(response);
                cancel =null;
            })
1
2
3
4

然后在请求前写一个判断

如果上一次请求没结束,则取消上一次的请求

Last Updated: 2024/8/29 07:25:14