在一般的项目中,我们的大部分异常都是由后端发送过来的,前端只需要打印这些异常就行了。但是有一些情况除外,那就是网络异常
 当有这些网络异常的时候,这些请求就没有发送到后端,所以后端是不能够发送这些异常信息的,这个时候我们就需要在前端给用户这些提示
 在一般的正规项目中,我们一般都会在前端写一个请求拦截器,拦截我们所有的请求,这个这些请求添加token,并对所有的这些请求进行处理
像这些网络异常,这个错误是在response返回的err中的,我们只需要在拦截器的response中,处理就行了

request.interceptors.response.use(
    (response, promise) => {
        if(response.data.status == 4001){
            wx.redirectTo({
                url:'/login/login'
            })
        }
        return promise.resolve(response.data)
    },
    (err, promise) => {
        console.log(err)
        if (err.status == 0) {
            wx.showToast({
                title: "网络连接异常",
                icon: 'none',
                duration: 1500
            })
            return
        } else if (err.status == 1) {
            wx.showToast({
                title: "网络连接超时",
                icon: 'none',
                duration: 1500
            })
            return
        } else {
            if (err.response.data.message) {
                wx.showToast({
                    title: err.response.data.message,
                    icon: 'none',
                    duration: 1500
                })
                return promise.resolve()
            } else {
                wx.showToast({
                    title: "请求数据失败,请稍后再试",
                    icon: 'none',
                    duration: 1500
                })
                return
            }
        };

    }
)
Logo

前往低代码交流专区

更多推荐