uni.request请求响应拦截封装
以下是一个简单的uni.request请求响应拦截的示例,用于统一处理请求成功和失败的情况。
// 请求响应拦截
function responseInterceptor(res) {
if (res.statusCode === 200) {
// 业务成功
return res.data;
} else {
// 业务失败,可以根据具体业务处理
console.error('请求失败,状态码:' + res.statusCode);
// 可以抛出错误,在外部进行捕获处理
// throw new Error('请求出错,状态码:' + res.statusCode);
}
}
// 请求方法封装
function request(options) {
return new Promise((resolve, reject) => {
uni.request({
...options,
success: (res) => {
try {
const data = responseInterceptor(res);
resolve(data);
} catch (error) {
reject(error);
}
},
fail: (error) => {
reject(error);
}
});
});
}
// 使用示例
request({
url: 'https://example.com/api/data',
method: 'GET'
}).then(response => {
console.log('请求成功:', response);
}).catch(error => {
console.error('请求失败:', error);
});
这段代码首先定义了一个响应拦截函数responseInterceptor
,用于处理请求成功后的数据。然后定义了一个request
函数,它封装了uni.request,并在内部使用Promise处理异步逻辑。最后,提供了一个使用示例,展示了如何使用封装后的request
方法发起请求,并在成功或失败时进行处理。
评论已关闭