当前位置: 首页 > Web前端 > JavaScript

为lodash的memoize添加过期功能

时间:2023-03-26 20:42:35 JavaScript

需求场景:缓存大量同时发起的相同参数的重复请求,但几秒后缓存不再需要,需要再次向服务器请求最新的数据。.需要加一个超时功能思路:类似于防抖功能,每次判断是否超过设定时间,都会清空缓存列表constmyMemoize=(fn,duration=2000)=>{lett=新日期().getTime();constmemoized=_.memoize(fn,(...args)=>JSON.stringify(args));return(...args)=>{constcurr=newDate().getTime();if(curr-t>duration){memoized.cache=new_.memoize.Cache();t=当前;}返回memoized(...args);};};tsversionexportconstmyMemoize=Promise,R=ReturnType>(fn:T,duration=2000)=>{让t=newDate().getTime()constmemoized=memoize(fn,(...args:Parameters)=>JSON.stringify(args))返回(...args:Parameters)=>{constcurr=newDate().getTime()if(curr-t>duration){memoized.cache=newmemoize.Cachet=curr}返回memoized(...args)与R一样未知}}示例https://stackblitz.com/edit/m...