推荐答案
在 uni-app 中处理 uni.request 的错误可以通过以下几种方式:
使用
fail回调:// www.javascriptcn.com code example uni.request({ url: 'https://example.com/api', method: 'GET', success: (res) => { console.log('请求成功', res.data); }, fail: (err) => { console.error('请求失败', err); } });使用
complete回调:// www.javascriptcn.com code example uni.request({ url: 'https://example.com/api', method: 'GET', success: (res) => { console.log('请求成功', res.data); }, fail: (err) => { console.error('请求失败', err); }, complete: () => { console.log('请求完成'); } });使用
try-catch捕获异常:// www.javascriptcn.com code example try { uni.request({ url: 'https://example.com/api', method: 'GET', success: (res) => { console.log('请求成功', res.data); } }); } catch (err) { console.error('请求异常', err); }使用 Promise 封装:
// www.javascriptcn.com code example function request(url, method = 'GET', data = {}) { return new Promise((resolve, reject) => { uni.request({ url, method, data, success: (res) => resolve(res.data), fail: (err) => reject(err) }); }); } request('https://example.com/api') .then(data => console.log('请求成功', data)) .catch(err => console.error('请求失败', err));
本题详细解读
1. fail 回调
fail 回调是 uni.request 提供的一个专门用于处理请求失败的回调函数。当请求失败时,fail 回调会被触发,并传入一个错误对象 err,开发者可以在这个回调中处理错误逻辑。
2. complete 回调
complete 回调在请求完成时触发,无论请求成功还是失败。这个回调通常用于执行一些清理操作或状态更新。
3. try-catch 捕获异常
虽然 uni.request 本身不会抛出异常,但在某些情况下(如网络请求超时、服务器返回错误等),使用 try-catch 可以捕获到一些异步操作中的异常。
4. Promise 封装
通过将 uni.request 封装成 Promise,可以更方便地使用 async/await 语法来处理异步请求,并且可以统一处理成功和失败的逻辑。这种方式在现代 JavaScript 开发中非常常见,尤其是在处理多个异步请求时。
总结
处理 uni.request 的错误有多种方式,开发者可以根据具体需求选择合适的方法。推荐使用 fail 回调或 Promise 封装的方式来处理错误,这样可以更清晰地分离成功和失败的逻辑。