From be2de405abe3f125a9ae1d93badab226f5ecdd4a Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Thu, 5 Oct 2023 14:01:08 +0800 Subject: [PATCH] perf: `localForage` utils --- src/utils/localforage/index.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/utils/localforage/index.ts b/src/utils/localforage/index.ts index 87d7672d5..4b47951e9 100644 --- a/src/utils/localforage/index.ts +++ b/src/utils/localforage/index.ts @@ -6,7 +6,8 @@ class StorageProxy implements ProxyStorage { constructor(storageModel) { this.storage = storageModel; this.storage.config({ - // driver: [forage.LOCALSTORAGE], + // 首选IndexedDB作为第一驱动,不支持IndexedDB会自动降级到localStorage(WebSQL被弃用,详情看https://developer.chrome.com/blog/deprecating-web-sql) + driver: [this.storage.INDEXEDDB, this.storage.LOCALSTORAGE], name: "pure-admin" }); } @@ -22,7 +23,7 @@ class StorageProxy implements ProxyStorage { this.storage .setItem(k, { data: v, - expires: new Date().getTime() + m * 60 * 1000 + expires: m ? new Date().getTime() + m * 60 * 1000 : 0 }) .then(value => { resolve(value.data); @@ -42,11 +43,9 @@ class StorageProxy implements ProxyStorage { this.storage .getItem(k) .then((value: ExpiresData) => { - const data = - value.expires > new Date().getTime() || value.expires === 0 - ? value.data - : null; - resolve(data); + value && (value.expires > new Date().getTime() || value.expires === 0) + ? resolve(value.data) + : resolve(null); }) .catch(err => { reject(err);