fix: WRONGTYPE 错误处理 - key 类型变更时不崩溃

- loadKeyData: 类型特定命令 (SCARD/LLEN 等) 失败时重新获取 key 类型,
  避免显示错误的编辑器
- SetEditor.loadMembers: 添加 catch 块, WRONGTYPE 时清空成员列表而非
  抛出未捕获异常
This commit is contained in:
2026-07-11 15:52:33 +08:00
parent 99f8a8b250
commit 78695c0b7f
2 changed files with 43 additions and 33 deletions
@@ -20,6 +20,8 @@ async function loadMembers() {
loading.value = true
try {
members.value = await window.electronAPI.redis.setMembers(connStore.activeId, keyStore.selectedKey)
} catch {
members.value = []
} finally {
loading.value = false
}
+8
View File
@@ -138,6 +138,7 @@ export const useKeyStore = defineStore('key', () => {
await loadKeyTypeAndTTL(connId, key)
selectedKey.value = key
try {
switch (selectedType.value) {
case 'string':
keyData.value = await window.electronAPI.redis.getString(connId, key)
@@ -174,6 +175,13 @@ export const useKeyStore = defineStore('key', () => {
default:
keyData.value = null
}
} catch {
// Type might have changed between TYPE check and the type-specific
// command (e.g. key was overwritten). Re-fetch the type so the
// correct editor is shown.
await loadKeyTypeAndTTL(connId, key)
keyData.value = null
}
} finally {
loading.value = false
}