使用promise二次封装公共请求{wx.request,uni.request,axios,任选其一
时间: 2024-11-05 15:30:44 浏览: 32
基于小程序请求接口wx.request封装的类axios请求
Promise是一种处理异步操作的技术,在前端开发中常用于数据交互,如网络请求。为了复用并管理公共的HTTP请求,我们可以创建一个高级函数,例如使用Axios库进行封装,因为它跨平台且易于使用。以下是一个简单的封装示例:
```javascript
// 假设我们选择了axios作为基础库
const createRequest = async (method, url, data) => {
const instance = axios.create({
baseURL: '你的API地址', // 如果不是默认的baseURL,需要在这里配置
timeout: 5000, // 请求超时时间
headers: { 'Content-Type': 'application/json' } // 根据需求设置默认头部信息
});
try {
if (method === 'GET') {
return await instance.get(url, { params: data });
} else if (method === 'POST') {
return await instance.post(url, { data });
} else {
throw new Error('Unsupported method.');
}
} catch (error) {
console.error('Error in request:', error);
throw error;
}
};
// 调用示例
async function fetchData(type, id) {
try {
const response = await createRequest('GET', `/api/data/${type}/${id}`);
return response.data; // 返回响应数据
} catch (error) {
console.error('Failed to fetch data:', error.message);
// 在这里处理错误情况
}
}
// 使用createRequest时,只需要关心业务逻辑,无需每次都处理请求细节
fetchData('users', 1); // 传递具体的请求参数
```
阅读全文