memoizee - 基于参数缓存
memoizee - Cached based on arguments
我想根据提供的参数记住函数的结果。
例如:
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')
第二次调用结果与第一次调用相同。
我用 promise-memoize 库解决了这个问题。
我想根据提供的参数记住函数的结果。 例如:
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')
第二次调用结果与第一次调用相同。
我用 promise-memoize 库解决了这个问题。