首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >memoizee -基于参数缓存

memoizee -基于参数缓存
EN

Stack Overflow用户
提问于 2019-06-20 02:21:35
回答 1查看 339关注 0票数 0

我想根据所提供的参数来记忆函数的结果。例如:

代码语言:javascript
复制
getFiles('/articles/en')
getFiles('/articles/pl')

这些调用应该是独立的,并且应该有独立的缓存结果。目前,我总是收到第一次调用的结果。

我试过使用memoizee之外的其他库。使用fast-memoize我得到了预期的效果,但是fast-memoize不允许设置缓存结果的maxAge。

代码语言:javascript
复制
// Services to fetch files
const memoize = require('memoizee')

async function getFile (id) {/*...*/}
async function getFiles (folder) {/*...*/}

const getFilesWithCache =  memoize(getFiles, { maxAge: 86400000, promise: true })
const getFileWithCache =  memoize(getFile, { maxAge: 86400000, promise: true })

module.exports = {
 getFile,
 getFiles
 getFilesWithCache,
 getFileWithCache
}
代码语言:javascript
复制
//First call
let files = await getFilesWithCache('articles/en')


//Second call
files = await getFilesWithCache('articles/pl')

在第二个调用中,结果与第一个调用中相同。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-26 17:44:57

我用promise-memoize库解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56673713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档