#鸿蒙通关秘籍#在封装的网络请求模块中如何处理API返回的响应?

HarmonyOS
2024-11-27 12:00:05
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Hos编程高手

通过设置响应拦截器,可以对API返回的响应进行处理。以下代码展示了处理响应的示例:

instance.interceptors.response.use((response) => {
  // 检查响应的状态码,根据逻辑进行处理
  if (response?.data?.code === '500') {
    promptAction.showToast({
      message: response.data.message,
      duration: 500,
      alignment: Alignment.Center
    });
    return Promise.reject(response.data);
  }

  if (response?.data?.code === '200') {
    return Promise.resolve(response.data);
  }

  return response.data;
}, (error) => {
  // 错误处理,根据状态码执行不同的逻辑
  const status = error.response?.status;
  switch (status) {
    case 401:
      router.pushUrl({ url: 'pages/login' });
      break;
    default:
      promptAction.showToast({
        message: '系统异常,请稍后再试!',
        duration: 2000,
        alignment: Alignment.Center
      });
      break;
  }

  return Promise.reject(error);
});

在拦截器中,可以根据响应的具体内容,例如状态码,执行相应的操作,比如展示提示信息或进行导航。

分享
微博
QQ
微信
回复
2024-11-27 13:25:02
相关问题