为了账号安全,请及时绑定邮箱和手机立即绑定

求教axios结合throttle的写法

求教axios结合throttle的写法

倚天杖 2019-05-22 15:44:12
使用场景:vue+axios,弹窗点击按钮>发送请求>弹窗关闭,遇到问题:连续点击按钮,在弹窗关闭前会发送多个相同的接口,解决方案:点击时,给按钮一个disabled的标记来控制按钮问题:1.如果click事件挂载在div,该怎么解决(div无disabled属性)2.考虑采用axios结合throttle的思想,如何在全局层面上改造axios
查看完整描述

2 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

data(){
return{
requesting:false
}
},
methods:{
onButtonClick(){
if(!this.requesting){
request().then(()=>{this.requesting=false})
this.requesting=true
}
}
}
最简单的方法,在弹框按钮回调函数里判断下是否已经发送了请求
                            
查看完整回答
反对 回复 2019-05-22
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

要全局修改axios的话,可以参考楼上的,把请求标记requesting,存在全局状态中,如果有用vuex就存在state里面,然后通过axios的拦截器,在请求之前和请求结束后,改变requesting。
但是这种做法的话,你只能同时进行一个请求,如果遇到要同时进行两个以前的请求,就会失败。
用户体验比较好的的做法是请求的时候,弹出一个类似加载中的动画浮层,让用户无法多次点击按钮,请求结束后隐藏。
                            
查看完整回答
反对 回复 2019-05-22
  • 2 回答
  • 0 关注
  • 461 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信