在 src/http/http.ts 的 token 刷新逻辑中存在严重的 Promise 悬挂和内存泄漏问题:
src/http/http.ts
原问题:
taskQueue
影响范围:
优化任务队列数据结构
let taskQueue: (() => void)[] = []
let taskQueue: Array<{ resolve: () => void, reject: (reason?: any) => void }> = []
正确处理刷新失败场景
taskQueue.forEach(task => task.reject(refreshErr))
保持原有功能不变
修改文件: src/http/http.ts
核心改动:
task.resolve()
task.reject(refreshErr)
🐛 问题描述
在
src/http/http.ts的 token 刷新逻辑中存在严重的 Promise 悬挂和内存泄漏问题:原问题:
taskQueue队列等待影响范围:
✨ 解决方案
优化任务队列数据结构
let taskQueue: (() => void)[] = []let taskQueue: Array<{ resolve: () => void, reject: (reason?: any) => void }> = []正确处理刷新失败场景
taskQueue.forEach(task => task.reject(refreshErr))保持原有功能不变
📊 技术细节
修改文件:
src/http/http.ts核心改动:
task.resolve()task.reject(refreshErr)✅ 测试建议
🎯 预期效果