【热闻】怎么解决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;}
关键词:
推荐阅读
现在因为有个上传组件他用到了这个mixin文件,这个mixin文件中mounted请求了接口,这样一个页面中如果有多个上传组件的话,那么就会导致一上来
2023-04-19 11:53:54
文 图赖嘉华张炳锋“助力双碳·储能未来”。4月18日下午,广东梅州招商推介会·五华县储能产业专场在广州成功举办。这是在第九届中国广州国际
2023-04-19 11:39:30
苹果正式进军理财市场,官网发布消息称,与高盛合作的AppleCard高收益储蓄账户(SavingsAccount)已正式上线,类似于国内的余额宝功能。据苹果
2023-04-19 11:16:02
随着通信技术、传感器技术、信息技术的发展,我国加快了电网智能化的发展,同时新能源电力设施扩容改造的推进也为电力金具的发展带来新的机遇
2023-04-19 10:52:02
4月18日,国家统计局发布2023年一季度国民经济运行情况。从就业人员工作时间来看,今年3月,全国企业就业人员(以下简称“企业员工”)周平均
2023-04-19 10:23:00
本报讯(记者施剑松)北京市委教育工委日前召开北京高校“一站式”学生社区综合管理模式建设工作推进会,宣布将把“一站式”学生社区建设作为
2023-04-19 10:42:41
房产方面的知识对于多数小伙伴们是一般都不太懂的,那么如今买房卖房这当中都会存在着很多的问题的,那么大家就需要对于房产方面
2023-04-19 09:54:53
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其
2023-04-19 09:20:22
【阅读此文之前,麻烦您点击下“关注”,方便与您讨论分享,也能及时观看下一篇精彩文章。非常感谢您的关注!】近一段时间,大学生脱不下来孔
2023-04-19 08:50:07
2023上海车展于今日正式开幕,本届上海车展上,领克正式发布了旗下领克08系列车型,新车定位于中型SUV,采用了领克目前最先进的技术,同时还拥
2023-04-19 08:20:06
经典街机神作,重制觉醒回归!由SNK正版授权,腾讯天美工作室全新研发的横版动作射击手游《合金弹头:觉醒》,正式官宣游戏将于4月18日早8点全
2023-04-19 06:57:54
法国巴黎股市CAC40指数18日上涨---法国巴黎股市CAC40指数18日报收于7533 63点,较前一交易日上涨35 45点,涨幅为0 47%。
2023-04-19 06:04:28
资讯
品牌