yaejunyang/packages/utils/fetch.ts
2026-02-10 10:09:25 +00:00

12 lines
No EOL
380 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);
}
}