进击的编程君一如何防抖和显示全局加载界面
进击的crab 最近项目接口比较多,为了方便统一管理,写了这个一个玩意,统一管理接口地址,cookie,添加请求头token等。可以防抖和显示全局加载界面。
以后crab君还会把有趣的编程知识分享给大家,希望大家点赞支持。import axios from "axios"; //防抖 let pending = []; //声明一个数组用于存储每个ajax请求的取消函数和ajax标识 let cancelToken = axios.CancelToken; let removePending = (config) => { for (let p in pending) { if (pending[p].u === config.url + "&" + config.method) { //当前请求在数组中存在时执行函数体 pending[p].f(); //执行取消操作 pending.splice(p, 1); //把这条记录从数组中移除 } } }; // //全局loading // // 当前正在请求的数量 // let requestCount = 0; // // 显示loading // function showLoading() { // if (requestCount === 0) { // var dom = document.createElement("p"); // dom.setAttribute("id", "loading"); // document.body.appendChild(dom); // ReactDOM.render(, dom); // } // requestCount++; // } // // 隐藏loading // function hideLoading() { // requestCount--; // if (requestCount === 0) { // document.body.removeChild(document.getElementById("loading")); // } // } axios.defaults.baseURL = "";//填写你访问的默认地址 axios.defaults.withCredentials = true; //设置cross跨域 并设置访问权限 允许跨域携带cookie信息 axios.interceptors.request.use( function (config) { // 在发送请求之前做些什么 // console.log("请求前拦截", config) removePending(config); //在一个ajax发送前执行一下取消操作 config.cancelToken = new cancelToken((c) => { // console.log(config.url) // 这里的ajax标识我是用请求地址&请求方式拼接的字符串,当然你可以选择其他的一些方式 pending.push({ u: config.url + "&" + config.method, f: c }); }); // let token = getSession("Token"); // if (token) { // config.headers["Token"] = token; // } //开启loading // requestCount为0,才创建loading, 避免重复创建 // if (config.isLoading !== false) { // showLoading(); // } return config; }, function (error) { // 对请求错误做些什么 // console.log("请求前拦截err") // 判断当前请求是否设置了不显示Loading // if (error.config.isLoading !== false) { // hideLoading(); // } return Promise.reject(error); } ); // 添加响应拦截器 axios.interceptors.response.use( function (response) { // 对响应数据做点什么 // console.log("响应拦截") removePending(response.config); //在一个ajax响应后再执行一下取消操作,把已经完成的请求从pending中移除 // hideLoading(); return response; }, function (error) { // 对响应错误做点什么 // console.log("响应拦截err"); // hideLoading(); return Promise.reject(error); } ); export default axios;
四川未来的科技城市成都无奈落榜,不是泸州,而是这座城市科技的发展给我们的生活带来了巨大的变化,我们的生活相比于之前已经是有了翻天覆地的改变,回过头来看之前的日子,总会觉得有一种不真实的感觉,我们从以前那个刚刚吃饱穿暖的国家,一跃成为现
德国专家中国不可怕,可怕的是中国成为世上首个消灭沙漠的国家因为科技的发展使我们生活中使用的科技产品的数量不断增多,而使用它们需要消耗大量的能源,消耗能源的过程又会释放大量的温室气体,温室气体造就我温室效应使南北极的冰川融化,释放出冰川下的
美国专家叹息如果中国这项技术不那么强大,美国何必忌惮中国在目前国内的科技界当中,最受关注的企业就是华为了,没有之一。这都得感谢我们大洋彼岸的邻居,美国无时无刻都在不遗余力地给华为打广告,就冲这点来说,全世界就没有任何一家企业能够有此殊荣
美国专家中国难道不懂填海造岛的危害吗?这还自称是环保大国?科技的高速发展给我们的生活带来了非常多的便利,但是不知道大家感受到了没有,科技发展的同时,带来的是地球生态环境的巨大变动,不仅温室效应更加严重,同时地球上发生的大灾难的次数和频率也
吉林中公事业单位我国发展战略的历史进程我国是典型的社会主义国家,在1978年实行改革开放以后,我国的发展战略先后进行了几次制定,后面随着时代的不断发展又进行了不断的更新与修正,下面简单的总结一下,方便记忆。1987年党
时讯积石山马晓璐深入旅游大通道等地调研来源积石山县融媒体中心9月4日下午,积石山县委书记马晓璐前往旅游大通道,调研督导生态绿化修复工作。他强调,旅游大通道景观带打造要坚持生态优先战略,科学规划,下足绣花功夫把大通道打造
吉林中公事业单位财政政策和货币政策的运用财政政策是政府运用国家的预算和税收,调节社会总供给和社会总需求平衡的经济政策。财政的收入包括税利债费。在通货膨胀和通货紧缩时,主要依靠税收和国债。财政的支出包括政府购买和政府转移支
吉林中公事业单位社会意识一知识介绍(一)社会存在决定社会意识社会存在决定社会意识的内容和形式,决定社会意识的产生和发展。正是由于我国当前社会中有这样的经济发展,所以决定了在文化领域也就是社会意识拥有如此多
吉林中公事业单位区分财政政策和货币政策1。定义财政政策是指政府运用国家预算和税收等财政手段,通过对国民收入的分配和再分配,来实现社会总供给和社会总需求平衡的一种经济政策。货币政策是指中央银行通过控制和调节货币供应量以保
吉林中公事业单位区分财政政策和货币政策财政政策和货币政策是国家宏观经济调控的两大基本政策手段。二者主要是通过实施扩张性或收缩性政策,来调整社会总供给和总需求的关系。二者既各有侧重,又紧密联系,必须把握和正确处理二者的关
世界首次!太空中运行旋转爆震发动机(RDE)JAXA空间科学研究所是与东海国立高等教育研究所名古屋大学未来材料与系统研究所名古屋大学工学研究生院庆应义塾大学和室兰工业大学(以下简称toas,这个系统)被搭载在观测火箭S520