我有一个缓存类:
class Cache {
constructor() {
this._cache = {};
}
refresh(cb) {
Enums_db.find({key: {$in: ['COUNTRY_LIST', 'SUPPORTED_COUNTRIES', 'COUNTRY_DIAL']}}).exec((e, docs) => {
_.each(docs, (doc) => {
switch (doc.key) {
case 'COUNTRY_LIST':
this._cache.COUNTRY_LIST = doc.value;
break
case 'SUPPORTED_COUNTRIES':
this._cache.SUPPORTED_COUNTRIES = doc.value;
break;
case 'COUNTRY_DIAL':
this._cache.COUNTRY_DIAL = doc.value;
break;
}
})
cb && cb()
})
}
init(cb) {
this.refresh(cb)
setInterval(() => {
this.refresh()
}, 3000)
}
}
module.exports = new Enums()
module.exports = new Enums()
另外,我有枚举文件:
const cache = require('./utils/cache')
module.exports = {
COUNTRY_LIST: cache.cache.COUNTRY_LIST,
SUPPORTED_COUNTRIES: cache.SUPPORTED_COUNTRIES,
COUNTRY_DIAL: cache.COUNTRY_DIAL,
OTHER_ENUM: []
}
打印示例文件:
const {COUNTRY_LIST} = require('../enums')
setInterval(function () {
console.log(COUNTRY_LIST)
}, 3000)
这样我总是得到相同的值,即使它们在cahche类中被刷新和编辑。 我已经看到,如果我只导出缓存,并将print打印为:cache.COUNTRY_LIST,那么它将起作用。如何解决它,因此打印只会从枚举中打印COUNTRY_LIST属性,并且将通过ref从缓存文件中访问它?
感谢。