uni.showToast()响应拦截统一错误处理

292 阅读1分钟

说明

  • 当数据请求失败之后,经常需要调用 uni.showToast({ /* 配置对象 */ }) 方法来提示用户。
  • 此时,可以在全局封装一个 uni.$showMsg() 方法,来简化 uni.showToast() 方法的调用。

步骤如下

  1. 在utils/index.js为 uni 对象挂载自定义的 $showMsg() 方法:
// 封装一个统一提示的方法,提示文字内容作为参数传入
uni.$showMsg = function (title = '请求数据失败...') {
  uni.showToast({
    title,
    icon: 'none',
    mask: true
  })
}
  1. main.js 中导入使用
import "@/utils/index.js"
  1. 今后,在需要提示消息的时候,直接调用 uni.$showMsg() 方法即可:
// 响应拦截统一错误处理
axios.interceptors.response.use(function(response) {
  // 对响应数据做点什么
  if (response.data.meta.status !== 200) {
    uni.$showMsg(response.data.meta.msg)
    return Promise.reject(new Error(response.data.meta.msg || '请求出错'))
  }
  return response.data;
}, function(error) {
  // 对响应错误做点什么
  return Promise.reject(error);
})