Open DehaiWang opened 17 hours ago
3.2.4
Vue
全局模式下 responded 拦截器中在 onSuccess 函数中 根据后端返回值进行了判断, 如果后端返回的是失败或者错误,在 onSuccess 中 throw new Error, 但是对 useRequest 进行封装后无法拿到错误信息
代码如下:
responded: { onSuccess: async (response) => { console.log('=======onSuccess=========') console.log(response) if (response.status != 200) { throw new Error('接口异常:' + response.status) // return {'reason':} } const jsonData = await response.json() // 根据后端约定,判断code值抛出对应的问题 if (jsonData.success === 1) { return jsonData.datas } throw new Error('接口异常:' + jsonData.reason) }, }
封装 useRequest 的函数
export const getAa = () => { const { loading, // Ref<boolean> data, // Ref<{ data: any }> error, // Ref<Error> onSuccess, onError, } = useRequest(alovaInstance.Get<Resp>('/v5/aa2')); let errorBack: string = '' onSuccess(event => { console.log(event); }) onError(event => { errorBack = event.error console.log(errorBack) }) console.log(errorBack) console.log(error) return { data, error: errorBack } }
封装后的函数 返回的err字段一直是空的,不符合期望。
1.期望能在 responded 拦截器中 onSuccess 函数能统一处理错误信息,如调用弹窗提示,
2.在对useRequest 封装后,希望能同步拿到 后端返回的正常数据 和 拦截器反馈的报错信息, 如: {data,err}的形式 界面中 可以根据err是否为空进行处理。 如果err不为空,则什么逻辑都不触发。 如果err为空,则对返回的data数据进行处理。
No response
1.发起请求 2.获取到接口的数据 和 接口是否报错
1
2
Is this a Bug?
Has this issue been reported before?
Alova Version
3.2.4
Framework
Vue
Problem Description
全局模式下 responded 拦截器中在 onSuccess 函数中 根据后端返回值进行了判断, 如果后端返回的是失败或者错误,在 onSuccess 中 throw new Error, 但是对 useRequest 进行封装后无法拿到错误信息
代码如下:
封装 useRequest 的函数
封装后的函数 返回的err字段一直是空的,不符合期望。
Expected Behavior
1.期望能在 responded 拦截器中 onSuccess 函数能统一处理错误信息,如调用弹窗提示,
2.在对useRequest 封装后,希望能同步拿到 后端返回的正常数据 和 拦截器反馈的报错信息, 如: {data,err}的形式 界面中 可以根据err是否为空进行处理。 如果err不为空,则什么逻辑都不触发。 如果err为空,则对返回的data数据进行处理。
Reproduction Link
No response
Reproduction Steps
1.发起请求 2.获取到接口的数据 和 接口是否报错
System Information
Additional Information
2