From a60963f88224235ff6e8847a019dfd93da203738 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Mon, 30 Jul 2018 17:07:21 +0200 Subject: [PATCH] Refactor the `ViewHistory` to utilize `async` methods rather than manually returning `Promise`s --- web/view_history.js | 86 ++++++++++++++++++++------------------------- 1 file changed, 38 insertions(+), 48 deletions(-) diff --git a/web/view_history.js b/web/view_history.js index c50d8064c..5c5857b7e 100644 --- a/web/view_history.js +++ b/web/view_history.js @@ -54,64 +54,54 @@ class ViewHistory { }); } - _writeToStorage() { - return new Promise((resolve) => { - let databaseStr = JSON.stringify(this.database); + async _writeToStorage() { + let databaseStr = JSON.stringify(this.database); - if (typeof PDFJSDev !== 'undefined' && - PDFJSDev.test('FIREFOX || MOZCENTRAL')) { - sessionStorage.setItem('pdfjs.history', databaseStr); - } else { - localStorage.setItem('pdfjs.history', databaseStr); - } - resolve(); - }); + if (typeof PDFJSDev !== 'undefined' && + PDFJSDev.test('FIREFOX || MOZCENTRAL')) { + sessionStorage.setItem('pdfjs.history', databaseStr); + return; + } + localStorage.setItem('pdfjs.history', databaseStr); } - _readFromStorage() { - return new Promise(function(resolve) { - if (typeof PDFJSDev !== 'undefined' && - PDFJSDev.test('FIREFOX || MOZCENTRAL')) { - resolve(sessionStorage.getItem('pdfjs.history')); - } else { - resolve(localStorage.getItem('pdfjs.history')); - } - }); + async _readFromStorage() { + if (typeof PDFJSDev !== 'undefined' && + PDFJSDev.test('FIREFOX || MOZCENTRAL')) { + return sessionStorage.getItem('pdfjs.history'); + } + return localStorage.getItem('pdfjs.history'); } - set(name, val) { - return this._initializedPromise.then(() => { - this.file[name] = val; - return this._writeToStorage(); - }); + async set(name, val) { + await this._initializedPromise; + this.file[name] = val; + return this._writeToStorage(); } - setMultiple(properties) { - return this._initializedPromise.then(() => { - for (let name in properties) { - this.file[name] = properties[name]; - } - return this._writeToStorage(); - }); + async setMultiple(properties) { + await this._initializedPromise; + for (let name in properties) { + this.file[name] = properties[name]; + } + return this._writeToStorage(); } - get(name, defaultValue) { - return this._initializedPromise.then(() => { + async get(name, defaultValue) { + await this._initializedPromise; + let val = this.file[name]; + return val !== undefined ? val : defaultValue; + } + + async getMultiple(properties) { + await this._initializedPromise; + let values = Object.create(null); + + for (let name in properties) { let val = this.file[name]; - return val !== undefined ? val : defaultValue; - }); - } - - getMultiple(properties) { - return this._initializedPromise.then(() => { - let values = Object.create(null); - - for (let name in properties) { - let val = this.file[name]; - values[name] = val !== undefined ? val : properties[name]; - } - return values; - }); + values[name] = val !== undefined ? val : properties[name]; + } + return values; } }