以请求的路径和参数做Map对象的键值,短时间内判断相同的请求是否同时出现,如果出现则过滤不执行,若有特殊需求,设置一个白名单
import axios from "axios";
import {
Message} from "element-ui";
const whiteUrl = ['/page/list']
var axiosMap = new Map()
axios.interceptors.request.use(config => {
if(whiteUrl.indexOf(config.url)!==-1){
if(axiosMap.has(config.url+JSON.stringify(config.data))){
Message({
message: "操作太快了请休息一下",
type: "warning",
duration: 2 * 1000
})
return false
}else{
axiosMap.set(config.url+JSON.stringify(config.data),config)
setTimeout(()=>{
axiosMap.clear()
},1000)
}
}
})