async await http请求错误catch未定义

时间:2017-08-09 08:54:42

标签: node.js axios

我正在使用axios http call执行async / await:

try{ 
  let result = await axios.post('/user', {
    firstName: 'Fred',
    lastName: 'Flintstone'
  })
}catch(err){
  // err is undefined if hit with http request error
  console.log(err.response.status) // undefined
}

但是当我遇到请求错误时,我得到了未定义的错误,为什么?

我想获得err.response.statuserr.response.data.error

1 个答案:

答案 0 :(得分:-3)

所有的拳头..你没有返回或执行“尝试”块内的任何事情..而且你没有“然后”阻止。为了获得成功或错误,你必须从try块中删除那个“结果”变量......下面有两个axios的例子,你可以尝试,这将有效..

  • 第一个例子..(完整的axios方法和工作方法)
 axios.post('/user', {
    firstName: 'Fred',
    lastName: 'Flintstone'
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });
  • 第二个例子(带有try和catch块的公理)
try{ 
  axios.post('/user', {
    firstName: 'Fred',
    lastName: 'Flintstone'
  });
}
catch(err){
  console.log(err);
}
  • 但你不需要使用第二个例子,因为第一个例子本身将作为try和catch块工作。在我看来你应该选择第一个选项..(更有效率)。希望这会对你有所帮助..快乐编码B)