解决Cannot read properties of undefined (reading ‘then‘)问题

在请求封装的代码位置其实拿到了返回信息,但是返回给接口调用位置的时候就怎么都拿不到,找了很久最后加了一个新的请求封装拿到了。
原来报错的代码:(其实其它接口调用的没有问题,只有一个接口会报这个错,就很奇怪)

service.interceptors.response.use(
  (response) => {
    if (response.status !== 200) {
      router.replace({
        path: "/",
      });
    } else {
      // 后端返回code不为200的报错提示
      if (response.data.code && response.data.code !== 200) {
        Toast(response.data.msg);
      }
    }
    return Promise.resolve(response);
  },
  (error) => {
    router.replace({
      path: "/error",
    });
  }
);

新加的封装:

service.interceptors.response.use(
  (response) => {
    const res = response.data ?? response;
    if (response.status !== 200) {
      return Promise.reject(new Error("Error"));
    } else {
        sessionStorage.setItem("authenticator", response.headers.authenticator);
      return res;
    }
  },
  (error) => {
    if (error.response.status === 401) {
      router.replace({
        path: "/",
      });
    } else {
      console.log("err" + error); // for debug
      return Promise.reject(error);
    }
  }
);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值