我想根据提供的参数记住函数的结果。 例如:
getFiles('/articles/en')
getFiles('/articles/pl')
此调用应独立,并应具有独立的缓存结果。目前,我总是从第一个电话收到结果。
我尝试使用除备忘录以外的其他库。使用快速记忆,我得到了预期的效果,但是快速记忆不允许设置缓存结果的maxAge。
// 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
}
//First call
let files = await getFilesWithCache('articles/en')
//Second call
files = await getFilesWithCache('articles/pl')
第二次通话的结果与第一次通话相同。
答案 0 :(得分:0)
我用promise-memoize库解决了这个问题。