import axios from './instansce'; /** 创建请求 */ export function createRequest() { async function asyncRequest(param: Service.RequestParam): Promise> { const { url } = param; const method = param.method || 'GET'; return (await axios({ method, url, data: param.data, axiosConfig: param.axiosConfig })) as Service.RequestResult; } /** * get请求 * @param url - 请求地址 * @param config - axios配置 */ function get(url: string, data?: any, config?: Service.AxiosConfig) { return asyncRequest({ url, method: 'GET', data, axiosConfig: config }); } /** * post请求 * @param url - 请求地址 * @param data - 请求的body的data * @param config - axios配置 */ function post(url: string, data?: any, config?: Service.AxiosConfig) { return asyncRequest({ url, method: 'POST', data, axiosConfig: config }); } /** * put请求 * @param url - 请求地址 * @param data - 请求的body的data * @param config - axios配置 */ function put(url: string, data?: any, config?: Service.AxiosConfig) { return asyncRequest({ url, method: 'PUT', data, axiosConfig: config }); } /** * delete请求 * @param url - 请求地址 * @param config - axios配置 */ function handleDelete(url: string, data?: any, config?: Service.AxiosConfig) { return asyncRequest({ url, method: 'DELETE', data, axiosConfig: config }); } return { get, post, put, delete: handleDelete }; }