【问题标题】:axios async await function not returning validation errorsaxios async await 函数不返回验证错误
【发布时间】:2017-06-07 21:11:29
【问题描述】:

export const register = (user, callback, errorback) => async dispatch => {
  try{

    let response = await axios.post(`${PINGUIN_ROOT_URL}/users/create`, user)

    if (response.data.auth_token){
      auth_token = response.data.auth_token
      dispatch({ type: REGISTER_SUCCESS, payload: auth_token})
      callback()
    } else {
      let error = response
      throw error
    }

  }catch(error){

    dispatch({type: REGISTER_FAIL})
    errorback()

  }

您好,我正在根据我们所学的内容构建一个登录寄存器。它可以工作,但由于某种原因,错误验证不会回来。我构建了一个rails api,当我使用邮递员时看到了验证错误,但是当我尝试使用redux恢复错误时,上面的注册函数到达“let response = ..”行并立即进入catch(错误)线。我不知道如何回传我在使用 post man 时看到的实际验证错误,因为被捕获的错误如下:

Error: Request failed with status code 422
    at createError (createError.js:16)
    at settle (settle.js:18)
    at XMLHttpRequest.handleLoad (xhr.js:77)
    at XMLHttpRequest.dispatchEvent (event-target.js:172)
    at XMLHttpRequest.setReadyState (XMLHttpRequest.js:538)
    at XMLHttpRequest.__didCompleteResponse (XMLHttpRequest.js:381)
    at XMLHttpRequest.js:485
    at RCTDeviceEventEmitter.emit (EventEmitter.js:181)
    at MessageQueue.__callFunction (MessageQueue.js:250)
    at MessageQueue.js:101

现在,代码在实际登录用户时仍然有效,但是它实际上并没有给我所需的验证错误。我看到验证错误在邮递员中以 json 形式返回,但我在实践中看不到它们。请帮忙?

【问题讨论】:

    标签: ruby-on-rails asynchronous react-native axios


    【解决方案1】:

    您可以从错误对象中获取响应对象为error.response

    try{
        let response = await axios.post(`${PINGUIN_ROOT_URL}/users/create`, user)
        ...
      } catch(error){
        console.error(error.response)
    }
    

    【讨论】:

      猜你喜欢
      • 2021-08-06
      • 2022-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-14
      • 2018-12-23
      • 2019-03-01
      相关资源
      最近更新 更多