通常项目中会有一个url.ts来统一管理所有的请求地址
1,如何封装xhr请求使用起来会比较方便?
2,或者有什么开源的项目可以参考?
想要达到的效果是: 请求某个URL的时候,在请求中可以约束参数和返回类型
现在的想法是,封装一个ajax请求,然后使用泛型传递类型,大概类似这样// url ...
const uerInfo = '/api/users/getUserInfo';
const orderInfo = '/api/order/getOrderInfo';
const productInfo = '/api/product/getProductInfo';
// ... 其它url
// 假设有这么一个封装的请求
function request(config: IConfig): Promise {
return new Promise((resolve, reject) => {
// ajax请求
});
}
// 假设以下 'I' 开头的类型已经定义
// 请求用户信息
const getUserInfo = (config: IUserInfoCOnfig) => request(config);
// 获取订单信息
const getOrderInfo = (config: IOrderInfoConfig) => request(config);
// 获取产品信息
const getProductInfo = (config: IProductInfoConfig) => request(config);
// ... 其它请求封装
但是这样的话,如果请求有几百个,为每一个url编写请求会显得很繁琐,而且写了很多重复的代码