优化try+catch

本文探讨了在使用Vue.js进行前端开发时如何优化try...catch语句来处理API接口调用中的错误。指出try...catch只能捕获同步错误,而.catch只能处理Promise的reject情况。当使用await时,由于其只能获取then的结果,所以异步错误仍需try...catch处理。为简化错误处理,建议封装一个专门的方法用于接口调用。

在调用接口的时候优化try…catch…

try…catch…只能捕获同步任务的错误信息
.catch…只能捕获异步promise的reject()的错误信息
因为await 只能默认取代then函数, 只能拿到then的结果,如果await后面的异步请求报错需要用到try…catch

如果不想使用try…catch语句可以这样做,封装一个方法

export function to(pA) { // axios()在原地的Promise对象
  const pB = pA.then(res => { // 接收网络请求成功/失败的结果
    return [null, res]
  }).catch(err => {
    return [err, null] // 会返回给pB的then使用(pA的错误信息中转下去)
  })
  return pB // Promise对象返回到逻辑页面等待接收-上面return的数组
}

api接口中使用

export const loginAPI = (data) => {
  const pA = request({
    url: '/sys/login',
    method: 'POST',
    data
  })
  const pB = to(pA)
  return pB // 返回到vue文件逻辑页面处
}

vue页面使用

const [err, res] = await loginAPI(value)
    // 我们只需要token, 保存到上面的vuex中
    if (!err) commit('SET_TOKEN', res.data)
    // 逻辑页面还在接收数组, 外面写成功/失败的逻辑, 所以这里要把数组返回出去
    // return到actions调用的地方(login/index.vue)
    return [err, res]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值