diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2019-08-30 19:38:36 -0400 |
---|---|---|
committer | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2019-09-28 21:54:18 -0400 |
commit | 664a318d7f5062bd397a8f40241c476dd3107f47 (patch) | |
tree | caa95a583762fd95b9f8d028be4ea3ac223cedc2 /ext/bg/js/database.js | |
parent | a4f8a459deda49af36d46cd93d9ff92c8f98c8c9 (diff) |
Use non-async function for cache lookups
Diffstat (limited to 'ext/bg/js/database.js')
-rw-r--r-- | ext/bg/js/database.js | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/ext/bg/js/database.js b/ext/bg/js/database.js index 329399e8..12a2577f 100644 --- a/ext/bg/js/database.js +++ b/ext/bg/js/database.js @@ -166,23 +166,30 @@ class Database { return results; } + findTagForTitleCached(name, title) { + if (this.tagCache.hasOwnProperty(title)) { + const cache = this.tagCache[title]; + if (cache.hasOwnProperty(name)) { + return cache[name]; + } + } + } + async findTagForTitle(name, title) { if (!this.db) { throw 'Database not initialized'; } - this.tagCache[title] = this.tagCache[title] || {}; + const cache = (this.tagCache.hasOwnProperty(title) ? this.tagCache[title] : (this.tagCache[title] = {})); - let result = this.tagCache[title][name]; - if (!result) { - await this.db.tagMeta.where('name').equals(name).each(row => { - if (title === row.dictionary) { - result = row; - } - }); + let result = null; + await this.db.tagMeta.where('name').equals(name).each(row => { + if (title === row.dictionary) { + result = row; + } + }); - this.tagCache[title][name] = result; - } + cache[name] = result; return result; } |