@neosjs/cli
Version:
Neos(奈欧斯)是一个帮助开发者快速地创建 Vue3 应用并自动配置项目编译的脚手架
47 lines (44 loc) • 1.36 kB
text/typescript
import { request, requestAll, type IRequestConfig } from '@neosjs/request';
import { merge } from 'lodash-es';
const controller = new AbortController();
/**
* useRequest
* @param url <String>
* @param config <Object>
* @returns Promise
*/
export const useRequest = async (url: string | IRequestConfig, params?: any, config?: IRequestConfig) => {
try {
if (!navigator.onLine) {
return Promise.reject(new Error('网络异常,请检查网络'));
}
const { VITE_API_URL } = import.meta.env;
const options = merge(
{
baseURL: VITE_API_URL,
// 这里可以配置一些公共的配置
cache: false, // 禁止接口缓存
retry: 2, // 重试两次
headers: {
client: 'web',
},
withCredentials: true,
signal: controller.signal,
},
config // 接口调用处传来的配置
);
options.params = params;
const { data } = await request(url, options);
if (data.code === 0 ) {
return data
} else {
return Promise.reject(data || '请求异常');
}
} catch (error: any) {
return Promise.reject({
code: error.errCode,
message: error?.errMsg || '',
});
}
};
export const useRequestAll = (iterable: Fn[]) => requestAll(iterable);