这是我的错误处理程序:
export const onAuthQueryStartedErrorToast = async (
_: any,
{ queryFulfilled }: any,
) => {
try {
await queryFulfilled;
} catch (error) {
const isError = error as AuthErrorType;
if (isError.error.data) {
toast.warn(defineMessage(isError.error.data.message));
} else {
toast.warn("some error occured");
}
}
};
字符串
这是我的端点和我想要处理的查询
export const AuthService = baseApi.injectEndpoints({
endpoints: (builder) => {
return {
authMe: builder.query<AuthMeResponseType, void>({
query: () => ({
url: "v1/auth/me",
method: "GET",
}),
onQueryStarted: onAuthQueryStartedErrorToast,
providesTags: ["Auth"],
}), ... }
型
错误处理工作正常,我得到了带有消息的吐司,但是控制台错误401仍然存在,我不知道如何摆脱它。看起来它在处理程序之前将错误记录到控制台(如果有意义的话)。有什么想法吗?
2条答案
按热度按时间qgelzfjb1#
据我所知,这是默认的浏览器行为,网络错误将被记录到控制台,你无法从你的网页/应用程序中做任何事情来改变或阻止这一点。看到这些日志并不一定意味着应用程序中没有正确处理某些事情。
但是,您可以做的是在控制台中更改您实际看到的内容,换句话说,您可以从控制台中“过滤”错误。
在浏览器的devtools中,您可以更改日志记录级别以从记录的输出中删 debugging 误。
示例如下:
x1c 0d1x的数据
的
其他浏览器应该有类似的设置。
**注意:**更改这些设置仅影响 * 您的 * 浏览器。您的页面/应用的用户仍然可以按照自己的喜好配置浏览器,并查看浏览器生成的日志。
还请注意,这将隐藏页面生成的 * 所有 * 错误,而不仅仅是网络错误,因此在开发过程中请注意这一点,您可能需要在以后重新启用错误日志记录以查看重要信息。请自行决定使用。
nue99wik2#
字符串
})