Fix data not being persisted after terminating Worker thread (#1877)
This commit is contained in:
parent
e704ae99a2
commit
2d5e6f8394
@ -198,6 +198,16 @@ class Database {
|
||||
});
|
||||
}
|
||||
|
||||
persistData(objectStoreName) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const transaction = this.transaction([objectStoreName], 'readonly');
|
||||
const objectStore = transaction.objectStore(objectStoreName);
|
||||
const cursor = objectStore.openCursor();
|
||||
cursor.onerror = (e) => reject(e.target.error);
|
||||
cursor.onsuccess = () => resolve();
|
||||
});
|
||||
}
|
||||
|
||||
static deleteDatabase(databaseName) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const request = indexedDB.deleteDatabase(databaseName);
|
||||
|
@ -317,6 +317,10 @@ class DictionaryDatabase {
|
||||
return this._db.bulkAdd(objectStoreName, items, start, count);
|
||||
}
|
||||
|
||||
persistData(objectStoreName) {
|
||||
return this._db.persistData(objectStoreName);
|
||||
}
|
||||
|
||||
// Private
|
||||
|
||||
_findMultiBulk(objectStoreName, indexNames, items, createQuery, predicate, createResult) {
|
||||
|
@ -149,6 +149,10 @@ class DictionaryImporter {
|
||||
this._progressData.index += count;
|
||||
this._progress();
|
||||
}
|
||||
|
||||
// This function is required in order to make the added data persist after the worker is terminated.
|
||||
// https://bugs.chromium.org/p/chromium/issues/detail?id=1237686
|
||||
await dictionaryDatabase.persistData(objectStoreName);
|
||||
};
|
||||
|
||||
await bulkAdd('terms', termList);
|
||||
|
Loading…
Reference in New Issue
Block a user