fix(auth): 修复token刷新失败时请求泄漏导致内存泄漏的bug
This commit is contained in:
@@ -55,13 +55,17 @@ export function useTokenRefresh() {
|
|||||||
})
|
})
|
||||||
.catch(async (error) => {
|
.catch(async (error) => {
|
||||||
console.error("Token refresh failed:", error);
|
console.error("Token refresh failed:", error);
|
||||||
// 刷新失败,清空队列并跳转登录页
|
// 刷新失败,先 reject 所有等待的请求,再清空队列
|
||||||
|
const failedRequests = [...pendingRequests];
|
||||||
pendingRequests.length = 0;
|
pendingRequests.length = 0;
|
||||||
await redirectToLogin("登录状态已失效,请重新登录");
|
|
||||||
// 拒绝所有等待的请求
|
// 拒绝所有等待的请求
|
||||||
pendingRequests.forEach(() => {
|
failedRequests.forEach(() => {
|
||||||
reject(new Error("Token refresh failed"));
|
reject(new Error("Token refresh failed"));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 跳转登录页
|
||||||
|
await redirectToLogin("登录状态已失效,请重新登录");
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
isRefreshingToken = false;
|
isRefreshingToken = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user