我想根据所提供的参数来记忆函数的结果。例如:
getFiles('/articles/en')
getFiles('/articles/pl')这些调用应该是独立的,并且应该有独立的缓存结果。目前,我总是收到第一次调用的结果。
我试过使用memoizee之外的其他库。使用fast-memoize我得到了预期的效果,但是fast-memoize不允许设置缓存结果的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')在第二个调用中,结果与第一个调用中相同。
发布于 2019-06-26 17:44:57
我用promise-memoize库解决了这个问题。
https://stackoverflow.com/questions/56673713
复制相似问题