const KeyValueDB = { dbName: 'kvStorage', storeName: 'kvStore', async init() { return new Promise((resolve) => { const request = indexedDB.open(this.dbName, 1); request.onupgradeneeded = (e) => { const db = e.target.result; if (!db.objectStoreNames.contains(this.storeName)) { db.createObjectStore(this.storeName); } }; request.onsuccess = () => resolve(request.result); }); }, // 设置值(类似 localStorage.setItem) async set(key, value) { const db = await this.init(); return new Promise((resolve) => { const tx = db.transaction(this.storeName, 'readwrite'); tx.objectStore(this.storeName).put(value, key); tx.oncomplete = () => resolve(); }); }, // 获取值(类似 localStorage.getItem) async get(key) { const db = await this.init(); return new Promise((resolve) => { const tx = db.transaction(this.storeName, 'readonly'); const request = tx.objectStore(this.storeName).get(key); request.onsuccess = () => resolve(request.result); }); }, // 删除值 async remove(key) { const db = await this.init(); return new Promise((resolve) => { const tx = db.transaction(this.storeName, 'readwrite'); tx.objectStore(this.storeName).delete(key); tx.oncomplete = () => resolve(); }); }, // 清空所有 async clear() { const db = await this.init(); return new Promise((resolve) => { const tx = db.transaction(this.storeName, 'readwrite'); tx.objectStore(this.storeName).clear(); tx.oncomplete = () => resolve(); }); }, // 获取所有键 async keys() { const db = await this.init(); return new Promise((resolve) => { const tx = db.transaction(this.storeName, 'readonly'); const store = tx.objectStore(this.storeName); const request = store.getAllKeys(); request.onsuccess = () => resolve(request.result); }); } }; export {KeyValueDB}