axios节流算法

以请求的路径和参数做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)
   }
  }
})

猜你喜欢

转载自blog.csdn.net/qq_37195804/article/details/106246408