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) {
|
static deleteDatabase(databaseName) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const request = indexedDB.deleteDatabase(databaseName);
|
const request = indexedDB.deleteDatabase(databaseName);
|
||||||
|
@ -317,6 +317,10 @@ class DictionaryDatabase {
|
|||||||
return this._db.bulkAdd(objectStoreName, items, start, count);
|
return this._db.bulkAdd(objectStoreName, items, start, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
persistData(objectStoreName) {
|
||||||
|
return this._db.persistData(objectStoreName);
|
||||||
|
}
|
||||||
|
|
||||||
// Private
|
// Private
|
||||||
|
|
||||||
_findMultiBulk(objectStoreName, indexNames, items, createQuery, predicate, createResult) {
|
_findMultiBulk(objectStoreName, indexNames, items, createQuery, predicate, createResult) {
|
||||||
|
@ -149,6 +149,10 @@ class DictionaryImporter {
|
|||||||
this._progressData.index += count;
|
this._progressData.index += count;
|
||||||
this._progress();
|
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);
|
await bulkAdd('terms', termList);
|
||||||
|
Loading…
Reference in New Issue
Block a user