1***@qq.com
1***@qq.com
  • 发布:2023-11-28 17:57
  • 更新:2023-11-28 18:16
  • 阅读:171

uni.request 不同项目返回格式不一样

分类:uni-app
    return new Promise((resolve, reject) => {  
        console.log(uni.getSystemInfoSync())  
        uni.request({  
                method: config.method || 'get',  
                timeout: config.timeout || timeout,  
                url: config.baseUrl || baseUrl + config.url,  
                data: config.data,  
                header: config.header,  
                dataType: 'json'  
            }).then(response => {  
                debugger  
                let [error, res] = response  
                if (error) {  
                    toast('后端接口连接异常')  
                    reject('后端接口连接异常')  
                    return  
                }  
                const code = res.data.code || 200  
                const msg = errorCode[code] || res.data.msg || errorCode['default']  
                if (code === 401) {  
                    showConfirm('登录状态已过期,您可以继续留在该页面,或者重新登录?').then(res => {  
                        if (res.confirm) {  
                            userStore.LogOut().then(res => {  
                                uni.reLaunch({ url: '/pages/login' })  
                            })  
                        }  
                    })  
                    reject('无效的会话,或者会话已过期,请重新登录。')  
                } else if (code === 500) {  
                    toast(msg)  
                    reject('500')  
                } else if (code !== 200) {  
                    toast(msg)  
                    reject(code)  
                }  
                resolve(res.data)  
            })  
            .catch(error => {  
                let { message } = error  
                if (message === 'Network Error') {  
                    message = '后端接口连接异常'  
                } else if (message.includes('timeout')) {  
                    message = '系统接口请求超时'  
                } else if (message.includes('Request failed with status code')) {  
                    message = '系统接口' + message.substr(message.length - 3) + '异常'  
                }  
                toast(message)  
                reject(error)  
            })  
    })  

同样一段代码为啥不同项目的response的返回值不一样

2023-11-28 17:57 负责人:无 分享
已邀请:
爱豆豆

爱豆豆 - 办法总比困难多

用then的方式就会返回数组 用success回调来接收数据就正常了

return new Promise((resolve, reject) => {  
    console.log(uni.getSystemInfoSync())  
    uni.request({  
        method: config.method || 'get',  
        timeout: config.timeout || timeout,  
        url: config.baseUrl || baseUrl + config.url,  
        data: config.data,  
        header: config.header,  
        dataType: 'json',  
        success: (res) => {  
            // 成功回调  
            resolve(res)  
        },  
        fail: (err) => {  
            // 失败回调  
            reject(err)  
        }  
    })  
})
  • 1***@qq.com (作者)

    我两个代码都是用then的形式,一个返回数据一个返回的json,就很奇怪,代码都是一模一样的使用的then

    2023-11-28 21:43

要回复问题请先登录注册