fix(dict): 修复字典请求失败后队列未清理导致永久阻塞
This commit is contained in:
@@ -39,7 +39,7 @@ function createDictSyncHook() {
|
||||
const messageCallbacks = ref<DictMessageCallback[]>([]);
|
||||
|
||||
// 重试定时器
|
||||
let retryTimer: any = null;
|
||||
let retryTimer: ReturnType<typeof setTimeout> | null = null;
|
||||
|
||||
/**
|
||||
* 注册字典消息回调
|
||||
|
||||
@@ -26,10 +26,16 @@ export const useDictStore = defineStore("dict", () => {
|
||||
if (dictCache.value[dictCode]) return;
|
||||
// 防止重复请求
|
||||
if (!requestQueue[dictCode]) {
|
||||
requestQueue[dictCode] = DictAPI.getDictItems(dictCode).then((data) => {
|
||||
cacheDictItems(dictCode, data);
|
||||
Reflect.deleteProperty(requestQueue, dictCode);
|
||||
});
|
||||
requestQueue[dictCode] = DictAPI.getDictItems(dictCode)
|
||||
.then((data) => {
|
||||
cacheDictItems(dictCode, data);
|
||||
Reflect.deleteProperty(requestQueue, dictCode);
|
||||
})
|
||||
.catch((error) => {
|
||||
// 请求失败,清理队列,允许重试
|
||||
Reflect.deleteProperty(requestQueue, dictCode);
|
||||
throw error;
|
||||
});
|
||||
}
|
||||
await requestQueue[dictCode];
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user