【问题标题】:Axios not catching error in catch and weird thing going on in thenAxios 没有在 catch 中发现错误,然后发生了奇怪的事情
【发布时间】:2020-05-28 15:26:49
【问题描述】:

我在 Vuejs 中有一个应用程序,节点中的服务器将响应应用程序发出的 axios 调用。

当服务器响应错误时,axios 不会捕获它并继续调用.then

此外,响应是否会因错误而有所不同: 如果不是错误,我可以在 response.status 中检查状态 如果是错误,我必须检查 response.response.status

这是一个我必须做的处理错误的例子:

function post(url, data, headers = {}){
  return new Promise((resolve, reject) => {
    axios.post(BASE_URL+url, data, { headers: headers }).then(response => {
      if(response.response != undefined && response.response.status >= 400)
        return reject(response.response.data.message);
      resolve(response.data);
    }).catch(err => reject(err.message));
  });
}

有什么方法可以让 axios 在 .catch 中捕获响应错误,以便我可以简化这个没有多大意义的丑陋代码?

【问题讨论】:

    标签: javascript axios


    【解决方案1】:
    function post(url, data, headers = {}){
      return axios.post(BASE_URL+url, data, { headers: headers }).then(response => {
          if(response.response != undefined && response.response.status >= 400)
            return Promise.reject(response.response.data.message);
          return response.data
        });
      });
    }
    

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 1970-01-01
      • 2018-02-07
      • 2013-02-27
      • 2011-12-05
      • 1970-01-01
      • 1970-01-01
      • 2017-01-26
      • 2021-09-25
      相关资源
      最近更新 更多