我们如何处理来自错误的不同HTTP响应?

时间:2017-12-07 13:13:45

标签: javascript reactjs react-native react-redux

我正在使用我的后端进行简单身份验证。

我的行动无法处理试用,我不知道为什么它没有像我预期的那样工作,因为它在一个月前就有用了。

export const doAuthLogin = ( username, password ) => async dispatch => {
  console.log('passing action'); <- print 'passing action'
  let response = await axios.post(`${ROOT_URL}/rest-auth/login/`, {
    username,
    password,
  }); <- shows 400 error on console (Expo)

  console.log(response.status); <- print nothing // well 200 can prints status here
  console.log('doesn't work); <- print nothing

  if (response.status === 200) { <- doesn't execute 

2 个答案:

答案 0 :(得分:1)

您正在使用try-catch块进行异步操作(发布)。那不对。操作运行,在响应(“异步”响应)之前,代码继续运行并结束。

您的异步操作必须具有处理响应的回调函数参数。

答案 1 :(得分:0)

我认为你必须在上层函数中指定它是一个异步函数。

export const doAuthLogin = async (username, password) => async dispatch => {

如果这不起作用,请使用整个代码库创建一个jsfiddle / codepen,以便我们进一步调查。