javascript - 公理。即使 api 返回 404 错误,如何在 try catch finally 中获得错误响应

标签 javascript error-handling axios

例如

(async() => {
  let apiRes = null;
  try {
    apiRes = await axios.get('https://silex.edgeprop.my/api/v1/a');
  } catch (err) {
    console.error(err);
  } finally {
    console.log(apiRes);
  }
})();

finally 中,apiRes 将返回 null。

即使 api 收到 404 响应,响应中仍然有我想使用的有用信息。

当 axios 抛出错误时,如何在 finally 中使用错误响应。

https://jsfiddle.net/jacobgoh101/fdvnsg6u/1/

最佳答案

根据 the documentation ,完整的响应作为错误的 response 属性提供。

所以我会在 catch block 中使用该信息:

(async() => {
  let apiRes = null;
  try {
    apiRes = await axios.get('https://silex.edgeprop.my/api/v1/a');
  } catch (err) {
    console.error("Error response:");
    console.error(err.response.data);    // ***
    console.error(err.response.status);  // ***
    console.error(err.response.headers); // ***
  } finally {
    console.log(apiRes);
  }
})();

Updated Fiddle

但是如果你想在 finally 中使用它,只需将它保存到一个你可以在那里使用的变量中:

(async() => {
  let apiRes = null;
  try {
    apiRes = await axios.get('https://silex.edgeprop.my/api/v1/a');
  } catch (err) {
    apiRes = err.response;
  } finally {
    console.log(apiRes); // Could be success or error
  }
})();

关于javascript - 公理。即使 api 返回 404 错误,如何在 try catch finally 中获得错误响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48298890/

相关文章:

javascript - 防止 polymer 纸输入退格

android - 如何在Android Studio中更改图片名称

javascript - Quasar + Vue + SSR - 如何隐藏敏感数据,例如 API key

asp.net - 我想将 Gmap 控件中的纬度和经度获取到文本框中

javascript - 动态添加表单,可以插入到sql表中

c - 如何在 Linux 下检查 C 中数字返回值的含义?

javascript - 为什么 crockford 在他的 json_parse 函数中创建这种类型的错误函数?

javascript - 通过form-data axios上传文件的问题

javascript - 如何使用下划线 POST JSON 属性?

javascript - 使用 laravel-mix/webpack 时声明全局辅助函数并理解命名空间