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,64 +54,54 @@ 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')) { return sessionStorage.getItem('pdfjs.history');
resolve(sessionStorage.getItem('pdfjs.history')); }
} else { return localStorage.getItem('pdfjs.history');
resolve(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];
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]; let val = this.file[name];
return val !== undefined ? val : defaultValue; values[name] = val !== undefined ? val : properties[name];
}); }
} return values;
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;
});
} }
} }