|
|
|
@ -274,24 +274,77 @@ export const readIndexDB = (keys=null, table, database) => {
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
};
|
|
|
|
|
export const deleteIndexDBbyKey = (key, table, database) => {
|
|
|
|
|
var open = indexedDB.open(database, INDEXED_DB_VERSION)
|
|
|
|
|
open.onupgradeneeded = function () {
|
|
|
|
|
// var db = open.result
|
|
|
|
|
// // 数据库是否存在
|
|
|
|
|
// if (!db.objectStoreNames.contains(table)) {
|
|
|
|
|
// var store = db.createObjectStore(table, { keyPath: 'id', autoIncrement: true })
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
open.onsuccess = function () {
|
|
|
|
|
var db = open.result
|
|
|
|
|
var tx = db.transaction(table, 'readwrite')
|
|
|
|
|
var store = tx.objectStore(table)
|
|
|
|
|
store.delete(key)
|
|
|
|
|
tx.oncomplete = function () {
|
|
|
|
|
db.close()
|
|
|
|
|
export const deleteIndexDBbyKey = (keys=null, table, database) => {
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
var open = indexedDB.open(database, INDEXED_DB_VERSION)
|
|
|
|
|
open.onupgradeneeded = function () {
|
|
|
|
|
// var db = open.result
|
|
|
|
|
// // 数据库是否存在
|
|
|
|
|
// if (!db.objectStoreNames.contains(table)) {
|
|
|
|
|
// var store = db.createObjectStore(table, { keyPath: 'id', autoIncrement: true })
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
open.onsuccess = function (e) {
|
|
|
|
|
let db = e.target.result
|
|
|
|
|
// 数据库是否存在
|
|
|
|
|
if (!db.objectStoreNames.contains(table)) {
|
|
|
|
|
resolve('Database does not exist.')
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
var tx = db.transaction(table, 'readwrite')
|
|
|
|
|
var store = tx.objectStore(table)
|
|
|
|
|
if (Array.isArray(keys) && keys.length > 0) {
|
|
|
|
|
const promises = keys.map((key) => {
|
|
|
|
|
return new Promise((innerResolve) => {
|
|
|
|
|
const delRequest = store.delete(key)
|
|
|
|
|
delRequest.onsuccess = (event) => {
|
|
|
|
|
const result = event.target.result
|
|
|
|
|
if (result) {
|
|
|
|
|
innerResolve()
|
|
|
|
|
} else {
|
|
|
|
|
innerResolve(void 0) // Resolve with undefined for non-existent keys
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
delRequest.onerror = (event) => {
|
|
|
|
|
innerResolve(undefined)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
Promise.allSettled(promises)
|
|
|
|
|
.then((results) => {
|
|
|
|
|
resolve(results)
|
|
|
|
|
})
|
|
|
|
|
.catch((error) => {
|
|
|
|
|
reject(error)
|
|
|
|
|
})
|
|
|
|
|
} else if (!isEmpty(keys)) { // Handle single key
|
|
|
|
|
const delRequest = store.delete(keys);
|
|
|
|
|
delRequest.onsuccess = (event) => {
|
|
|
|
|
const result = event.target.result;
|
|
|
|
|
if (result) {
|
|
|
|
|
resolve(result);
|
|
|
|
|
} else {
|
|
|
|
|
resolve();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
delRequest.onerror = (event) => {
|
|
|
|
|
reject(event.target.error);
|
|
|
|
|
};
|
|
|
|
|
} else {
|
|
|
|
|
// 删除所有
|
|
|
|
|
let clearRequest = store.clear()
|
|
|
|
|
clearRequest.onsuccess = function (e) {
|
|
|
|
|
resolve(e.target.result)
|
|
|
|
|
}
|
|
|
|
|
clearRequest.onerror = function (e) {
|
|
|
|
|
reject(e.target.error)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
tx.oncomplete = function () {
|
|
|
|
|
db.close()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
function cleanOldData(database, storeNames=[], dateKey = 'timestamp') {
|
|
|
|
|