Неизвестная ошибка тайм -аута при перефлексии запросаJavascript

Форум по Javascript
Ответить
Anonymous
 Неизвестная ошибка тайм -аута при перефлексии запроса

Сообщение Anonymous »

У меня тупой момент. Я использую Tanstack Query и KY в своем приложении, чтобы сделать в них запросы и вводить токены JWT. Каждый раз, когда запрос достигает ошибки 403, запрос возмущается после получения нового токена доступа. И стек проходит через весь запрос, проведенный от KY в Tanstack Query, и я не знаю здесь, чтобы справиться с ним, чтобы я мог просто опубликовать «Получение нового токена» для консоли вместо этой ошибки.
Я попытался проверить ответ. Status in const в использовании infinitelogsquer Customky Но ничто не влияет на эту ошибку.

Код: Выделить всё

GET http://localhost:8080/api/v1/users/root/ 403 (Forbidden)           timeout.ts:24

Вот QueryClient:

Код: Выделить всё

import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { PropsWithChildren, useState } from "react";

const QueryProvider = ({ children }: PropsWithChildren) => {
const [queryClientInstance] = useState(
() =>
new QueryClient({
defaultOptions: {
queries: {
staleTime: 1000 * 30,
retry: false,
},
},
})
);

return (

{children}

);
};

export default QueryProvider;
< /code>
Вот индивидуальный экземпляр KY, который я использую: < /p>
import useAuth from "hooks/useAuth";
import ky from "ky";

export const useKy = () => {
const { auth, setAuth, refreshToken } = useAuth();

const customKy = ky.extend({
prefixUrl: "api/v1",
hooks: {
beforeRequest: [
async (request) => {
if (auth)
request.headers.set("Authorization", `Bearer ${auth.access_token}`);
},
],
afterResponse: [
async (request, _, response) => {
if (response.status === 403) {
console.log(response);

try {
await refreshToken().then(({ access_token, username }) => {
setAuth({ access_token, username });
request.headers.set("Authorization", `Bearer ${access_token}`);
});

return ky(request);
} catch (error) {
throw new Error("Failed to refresh token: " + error);
}
}
},
],
},
retry: {
methods: ["get", "post"],
limit: 3,
statusCodes: [403],
},
});

return { customKy };
};
< /code>
один из запросов: < /p>
export const useInfiniteLogsQuery = () => {
const { customKy } = useKy();
return useInfiniteQuery({
queryKey: ["infiniteLogs"],
queryFn: async ({ pageParam }) => {
const link = pageParam.split("api/v1/")[1];
const resolvedLink = `${link}&resolved=false`;
const request = await customKy.get(resolvedLink).json();

return request;
},
initialPageParam: `api/v1/logs-list/json/?limit=25&offset=0`,
getNextPageParam: (lastPage) => lastPage?.next,
});
};


Подробнее здесь: https://stackoverflow.com/questions/795 ... ng-a-query
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»