yaejunyang/packages/utils/fetch.ts

16 lines
374 B
TypeScript

export default async function (
url: URL | RequestInfo,
request: RequestInit = {},
time: number = 5000,
): Promise<Response> {
const controller = new AbortController();
const timeout = setTimeout(() => controller.abort(), time);
request.signal ??= controller.signal;
try {
return await fetch(url, request);
} finally {
clearTimeout(timeout);
}
}