Refactor the ViewHistory to utilize async methods rather than manually returning Promises

This commit is contained in:
Jonas Jenwald 2018-07-30 17:07:21 +02:00
parent 233b3274bf
commit a60963f882

View File

@ -54,56 +54,47 @@ class ViewHistory {
}); });
} }
_writeToStorage() { async _writeToStorage() {
return new Promise((resolve) => {
let databaseStr = JSON.stringify(this.database); let databaseStr = JSON.stringify(this.database);
if (typeof PDFJSDev !== 'undefined' && if (typeof PDFJSDev !== 'undefined' &&
PDFJSDev.test('FIREFOX || MOZCENTRAL')) { PDFJSDev.test('FIREFOX || MOZCENTRAL')) {
sessionStorage.setItem('pdfjs.history', databaseStr); sessionStorage.setItem('pdfjs.history', databaseStr);
} else { return;
}
localStorage.setItem('pdfjs.history', databaseStr); localStorage.setItem('pdfjs.history', databaseStr);
} }
resolve();
});
}
_readFromStorage() { async _readFromStorage() {
return new Promise(function(resolve) {
if (typeof PDFJSDev !== 'undefined' && if (typeof PDFJSDev !== 'undefined' &&
PDFJSDev.test('FIREFOX || MOZCENTRAL')) { PDFJSDev.test('FIREFOX || MOZCENTRAL')) {
resolve(sessionStorage.getItem('pdfjs.history')); return sessionStorage.getItem('pdfjs.history');
} else {
resolve(localStorage.getItem('pdfjs.history'));
} }
}); return localStorage.getItem('pdfjs.history');
} }
set(name, val) { async set(name, val) {
return this._initializedPromise.then(() => { await this._initializedPromise;
this.file[name] = val; this.file[name] = val;
return this._writeToStorage(); return this._writeToStorage();
});
} }
setMultiple(properties) { async setMultiple(properties) {
return this._initializedPromise.then(() => { await this._initializedPromise;
for (let name in properties) { for (let name in properties) {
this.file[name] = properties[name]; this.file[name] = properties[name];
} }
return this._writeToStorage(); return this._writeToStorage();
});
} }
get(name, defaultValue) { async get(name, defaultValue) {
return this._initializedPromise.then(() => { await this._initializedPromise;
let val = this.file[name]; let val = this.file[name];
return val !== undefined ? val : defaultValue; return val !== undefined ? val : defaultValue;
});
} }
getMultiple(properties) { async getMultiple(properties) {
return this._initializedPromise.then(() => { await this._initializedPromise;
let values = Object.create(null); let values = Object.create(null);
for (let name in properties) { for (let name in properties) {
@ -111,7 +102,6 @@ class ViewHistory {
values[name] = val !== undefined ? val : properties[name]; values[name] = val !== undefined ? val : properties[name];
} }
return values; return values;
});
} }
} }