fix: 请求超时时间配置

This commit is contained in:
TsMask
2023-09-22 11:14:40 +08:00
parent 2b5aecc570
commit 021446b04b
3 changed files with 14 additions and 25 deletions

View File

@@ -41,6 +41,10 @@ type RepeatSubmitType = {
/**请求参数类型 */
type OptionsType = {
/**请求的根域名地址-不带/后缀 */
baseUrl?: string;
/**超时时间,毫秒 */
timeout?: number;
/**请求地址 */
url: string;
/**请求方法 */
@@ -67,22 +71,10 @@ type OptionsType = {
whithToken?: boolean;
};
/**全局配置类型 */
type ConfigType = {
/**请求的根域名地址-不带/后缀 */
baseUrl: string;
/**超时时间,毫秒 */
timeout: number;
};
/**默认配置 */
const FATCH_CONFIG: ConfigType = {
baseUrl: import.meta.env.VITE_API_BASE_URL,
timeout: 10 * 1000,
};
/**默认请求参数 */
const FATCH_OPTIONS: OptionsType = {
baseUrl: import.meta.env.VITE_API_BASE_URL,
timeout: 30 * 1000,
url: '',
method: 'get',
headers: {
@@ -211,12 +203,13 @@ export async function request(options: OptionsType): Promise<ResultType> {
// 请求超时控制请求终止
const controller = new AbortController();
const { signal } = controller;
const timeoutId = setTimeout(() => {
controller.abort(); // 终止请求
}, FATCH_CONFIG.timeout);
options = Object.assign({ signal }, FATCH_OPTIONS, options);
const timeoutId = setTimeout(() => {
controller.abort(); // 终止请求
}, options.timeout);
// 检查请求拦截
const beforeReq = beforeRequest(options);
if (beforeReq instanceof Promise) {
@@ -227,7 +220,7 @@ export async function request(options: OptionsType): Promise<ResultType> {
// 判断用户传递的URL是否http或/开头
if (!options.url.startsWith('http')) {
const uri = options.url.startsWith('/') ? options.url : `/${options.url}`;
options.url = FATCH_CONFIG.baseUrl + uri;
options.url = options.baseUrl + uri;
}
try {