赞
踩
我们在项目中经常会遇见一个请求结果多次使用的情况,一般如果请求次数不多,可以不做处理,例如登录就直接再次请求就可以了,但是如果服务器做了约束或者为了更好的性能,可以利用浏览器的强缓存机制,进行请求结果的缓存,缓存之后当再次发出请求时,直接从缓存中拿结果而不是再次请求!
直接上代码!
- const lazyFn = (fn) => {
- const map = {}
- return async function() {
- const key = JSON.stringify(arguments)
- console.log(key, map)
- let cache = map[key]
- if (!cache) {
- cache = await fn.apply(this, arguments)
- // eslint-disable-next-line require-atomic-updates
- map[key] = cache
- }
- return Promise.resolve(cache)
- }
- }
如何使用,直接,将请求的方法放入lazyFn()中,就可以了.
例如我做一个登录缓存
-
- export const userLoginLazy = lazyFn(userLogin)
-
- export function userLogin(data) {
- return request({
- url: '/login',
- method: 'post',
- data
- })
- }
这段代码主要达到一个优化性能的目的!!!
希望对小伙伴们有用!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。