当前位置:   article > 正文

做请求结果缓存的代码!_eslint-disable-next-line require-atomic-updates

eslint-disable-next-line require-atomic-updates

        我们在项目中经常会遇见一个请求结果多次使用的情况,一般如果请求次数不多,可以不做处理,例如登录就直接再次请求就可以了,但是如果服务器做了约束或者为了更好的性能,可以利用浏览器的强缓存机制,进行请求结果的缓存,缓存之后当再次发出请求时,直接从缓存中拿结果而不是再次请求!

直接上代码!

  1. const lazyFn = (fn) => {
  2. const map = {}
  3. return async function() {
  4. const key = JSON.stringify(arguments)
  5. console.log(key, map)
  6. let cache = map[key]
  7. if (!cache) {
  8. cache = await fn.apply(this, arguments)
  9. // eslint-disable-next-line require-atomic-updates
  10. map[key] = cache
  11. }
  12. return Promise.resolve(cache)
  13. }
  14. }

 如何使用,直接,将请求的方法放入lazyFn()中,就可以了.

例如我做一个登录缓存

  1. export const userLoginLazy = lazyFn(userLogin)
  2. export function userLogin(data) {
  3. return request({
  4. url: '/login',
  5. method: 'post',
  6. data
  7. })
  8. }

这段代码主要达到一个优化性能的目的!!!

希望对小伙伴们有用!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/1010143
推荐阅读
相关标签
  

闽ICP备14008679号