使用 vuejs 中的 Asyn/Await 和 axios 处理状态不同于 200 的响应

Car*_*llo 3 javascript async-await ecmascript-6 vue.js axios

我正在一个网站上工作,该网站在异步等待函数中使用 axios 发出了一个请求,如下所示:

async function () {
  try {
    const response = await axios.get('requestUrl')
  } catch (e) {
    throw new Error(e)
  }
}
Run Code Online (Sandbox Code Playgroud)

一切正常,但我不知道如何处理特定状态的错误(例如,当响应状态为 400 时显示特定消息)。我尝试使用 e.status,但它不起作用,所以,我不知道要调用什么才能获取请求的状态。我还尝试了带有 response.status 的 try 函数,我知道它会响应 400 状态,但它也不起作用。它仅在response.status为200时有效。

Mic*_*ski 7

使用error.response.status

async function () {
  try {
    const response = await axios.get('requestUrl')
  } catch (e) {
    if (e.response.status === 400) {
      // ...
    } else {
      // ...
    }
  }
}
Run Code Online (Sandbox Code Playgroud)