怎么解决Vue中多个相同组件重复请求的问题?
(相关资料图)
现在因为有个上传组件他用到了这个mixin文件,这个mixin文件中mounted请求了接口,这样一个页面中如果有多个上传组件的话,那么就会导致一上来就会一次性请求多个重复的接口,有什么好点的方法吗,如果不放在vuex中的话。
解决方法:
这种情况下的 getSignature 最好是 Singleton 的,可以写个模块导出。mixin 里的 getSignatrue 都直接引用或调用这个 Singleton 的 getSignature。
因为大家都调同一个 Signature,那么可以在这里做一些判断和处理,基本思路就是,
有缓存拿缓存没缓存判断如果是第 1 个请求的,就去请求远端如果不是第 1 个请求的,就等let cache = null;let count = 0;async function delay(ms = 200) { return new Promise(resolve => setTimeout(resolve, ms));}export async function getSignature() { if (cache) { return cache; } if (count++) { // 如果有计数说明自己不是第 1 个,就等。注意这里判断的是加之前的 count // 循环里最好再加个超时判断 while (!cache) { await delay(); } } else { // 是第 1 个就去请求 // 如果这里有可能会抛异常,抛异常也不要漏了 count-- // (这个示例代码没做容错,自己加) cache = await fetchSignature(); } count--; // 记得减回去,方便以后如果要刷新 cache 的时候用 return cache;}
关键词:
下一篇:最后一页
精心推荐
- 怎么解决Vue中多个相同组件重复请求的问题?
- 沙尘暴预警!新疆内蒙古等11省区市有扬沙或浮尘天气
- 每日讯息!半导体及元件板块盘初走高,寒武纪涨超10%
- 协会发文“官宣”重庆火锅发源地为东水门?重庆火锅协会回应:先寻找打造后论证
- 亚香股份:融资净买入11.35万元,融资余额2943.42万元(04-18) 每日信息
- 当前关注:中俄医药健康标准转化中心落地北京昌平
- 淄博烧烤火爆出圈,怎样吃烧烤最健康?来了解下
- 当前焦点!无愧欧冠大师:安帅1个变招,切尔西哑火!喊出夺冠口号
- 高质量的人脉,是用出来的!|环球短讯
- 环球关注:今天广东珠三角等地有大到暴雨 局地需警惕雷雨大风等强对流天气
- 扎克伯格裁员不手软,消息称 Meta 即将再裁 4000 人
- 北京一医院发生火灾 21人不幸死亡|世界简讯
- 1975年今年多少岁_1975年多少岁-观点
- 无锡狗证办理条件有哪些? 无锡狗证办理流程_微头条
X 关闭
X 关闭
产业
-
不用跑北京 在家门口也能挂上顶...
日前,我省首个神经疾病会诊中心——首都医科大学宣武医院河北医院...
-
“十四五”期间 河北省将优化快...
从省邮政管理局获悉,十四五期间,我省将优化快递空间布局,着力构...
-
张家口市宣化区:光伏发电站赋能...
3月19日拍摄的张家口市宣化区春光乡曹庄子村光伏发电站。张家口市宣...
-
“张同学”商标被多方抢注 涉及...
“张同学”商标被多方抢注,官方曾点名批评恶意抢注“丁真” ...
-
山东济南“防诈奶奶团”花式反诈...
中新网济南12月15日电 (李明芮)“老有所为 无私奉献 志愿服...
-
广州新增1例境外输入关联无症状...
广州卫健委今日通报,2021年12月15日,在对入境转运专班工作人...
-
西安报告初筛阳性病例转为确诊病例
12月15日10:20,经陕西西安市级专家组会诊,西安市报告新冠病毒...
-
广东东莞新增本土确诊病例2例 ...
(抗击新冠肺炎)广东东莞新增本土确诊病例2例 全市全员核酸检测...
-
中缅边境临沧:民警深夜出击捣毁...
中新网临沧12月15日电 (胡波 邱珺珲)记者15日从云南临沧边境...
-
“土家鼓王”彭承金:致力传承土...
中新网恩施12月15日电 题:“土家鼓王”彭承金:致力传承土家...