[fix] tauri store async fn
This commit is contained in:
@@ -6,31 +6,19 @@ import type { StateStorage } from "zustand/middleware"
|
||||
|
||||
// 节流设置
|
||||
export const THROTTLE_TIME = 300
|
||||
export const THROTTLE_TIME_STORE = 5000
|
||||
export const THROTTLE_TIME_STORE = 2000
|
||||
export const THROTTLE_LEADING = true
|
||||
export const THROTTLE_TRAILING = true
|
||||
|
||||
// 自定义Store覆盖get, set等方法,以适应tauri+zustand
|
||||
export async function tauriStore(name: string) {
|
||||
const store = await Store.load(`${name || "store"}.settings.json`)
|
||||
|
||||
// 自动保存
|
||||
const autoSave = throttle(
|
||||
THROTTLE_TIME_STORE,
|
||||
async () => {
|
||||
await store.save()
|
||||
},
|
||||
{
|
||||
noTrailing: !THROTTLE_TRAILING,
|
||||
noLeading: !THROTTLE_LEADING,
|
||||
},
|
||||
)
|
||||
const store = await Store.load(`${name || "store"}.settings.json`, {
|
||||
autoSave: THROTTLE_TIME_STORE,
|
||||
})
|
||||
|
||||
const doSet = throttle(
|
||||
THROTTLE_TIME,
|
||||
async (key: string, value: unknown) => {
|
||||
await store.set(key, value)
|
||||
},
|
||||
async (key: string, value: unknown) => await store.set(key, value),
|
||||
{
|
||||
noTrailing: !THROTTLE_TRAILING,
|
||||
noLeading: !THROTTLE_LEADING,
|
||||
@@ -39,12 +27,9 @@ export async function tauriStore(name: string) {
|
||||
|
||||
const set = (key: string, value: unknown) => {
|
||||
doSet(key, value)
|
||||
autoSave()
|
||||
}
|
||||
|
||||
const get = (key: string) => {
|
||||
return store.get(key)
|
||||
}
|
||||
const get = async (key: string) => await store.get(key)
|
||||
|
||||
// 自定义存储对象
|
||||
const storage: StateStorage = {
|
||||
@@ -62,5 +47,5 @@ export async function tauriStore(name: string) {
|
||||
},
|
||||
}
|
||||
|
||||
return { store, get, set, autoSave, storage }
|
||||
return { store, get, set, storage }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user