From 45cb399c177a9dca21f97beda5284a941727d826 Mon Sep 17 00:00:00 2001 From: mairuiming Date: Wed, 26 Nov 2025 16:17:20 +0800 Subject: [PATCH] 1 1 --- src/services/apiService.ts | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/src/services/apiService.ts b/src/services/apiService.ts index d6be196..e24c2f9 100644 --- a/src/services/apiService.ts +++ b/src/services/apiService.ts @@ -8,19 +8,29 @@ const apiRequest = async ( endpoint: string, data: Record ): Promise<{ success: boolean; data: T[]; message: string }> => { - const response = await fetch(`${API_CONFIG.BASE_URL}${endpoint}`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(data), - }); - - if (!response.ok) { - throw new Error(`HTTP error! status: ${response.status}`); + const controller = new AbortController(); + const timeout = setTimeout(() => controller.abort(), 15000); + try { + const response = await fetch(`${API_CONFIG.BASE_URL}${endpoint}`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(data), + signal: controller.signal, + }); + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + return response.json(); + } catch (e: any) { + if (e.name === 'AbortError') { + throw new Error('请求超时'); + } + throw e; + } finally { + clearTimeout(timeout); } - - return response.json(); }; /**