perf: localForage utils

This commit is contained in:
xiaoxian521 2023-10-05 14:01:08 +08:00
parent 3a10eb2241
commit be2de405ab

View File

@ -6,7 +6,8 @@ class StorageProxy implements ProxyStorage {
constructor(storageModel) { constructor(storageModel) {
this.storage = storageModel; this.storage = storageModel;
this.storage.config({ this.storage.config({
// driver: [forage.LOCALSTORAGE], // 首选IndexedDB作为第一驱动不支持IndexedDB会自动降级到localStorageWebSQL被弃用详情看https://developer.chrome.com/blog/deprecating-web-sql
driver: [this.storage.INDEXEDDB, this.storage.LOCALSTORAGE],
name: "pure-admin" name: "pure-admin"
}); });
} }
@ -22,7 +23,7 @@ class StorageProxy implements ProxyStorage {
this.storage this.storage
.setItem(k, { .setItem(k, {
data: v, data: v,
expires: new Date().getTime() + m * 60 * 1000 expires: m ? new Date().getTime() + m * 60 * 1000 : 0
}) })
.then(value => { .then(value => {
resolve(value.data); resolve(value.data);
@ -42,11 +43,9 @@ class StorageProxy implements ProxyStorage {
this.storage this.storage
.getItem(k) .getItem(k)
.then((value: ExpiresData<T>) => { .then((value: ExpiresData<T>) => {
const data = value && (value.expires > new Date().getTime() || value.expires === 0)
value.expires > new Date().getTime() || value.expires === 0 ? resolve(value.data)
? value.data : resolve(null);
: null;
resolve(data);
}) })
.catch(err => { .catch(err => {
reject(err); reject(err);