我的 RTK 查询拦截器有问题,我通过扩展每个RTK 查询文档的fetchBaseQuery\xe2\x80\x8b 来实现自动重新授权,现在我遇到的问题是,如果触发多个请求并且令牌无效,则所有他们将收到 401 作为响应,并且所有人都将尝试刷新令牌,这将导致第一个成功,其他令牌将失败,然后其他将触发并使用户返回登录屏幕。
\n有办法防止这种情况吗?
\n let result = await baseQuery(args, api, extraOptions)\n if (result.error && result.error.status === 401) {\n // try to get a new token\n const refreshResult = await baseQuery(\n {\n url: `http://.../${refreshToken}`,\n method: \'POST\'\n }, \n api, \n extraOptions\n );\n if (refreshResult.data) {\n // store the new token\n api.dispatch(tokenReceived(refreshResult.data))\n // retry the initial query\n result = await baseQuery(args, api, extraOptions)\n } else {\n api.dispatch(loggedOut())\n }\n }\n return result\nRun Code Online (Sandbox Code Playgroud)\n