开发者问题收集

可能的无人承诺拒绝反应

2018-01-10
1445

在我的数据加载器中,我得到的响应是这样的:

 method: 'PUT'
     })
    .then(response => response.json().then(json => {
       response.ok ? json : Promise.reject(json)}))
    .then(schematizeResponse)

在我的屏幕上,我有一个按钮可以调度该函数,它是:

  _updateValues(){
  try{
   //update Email
    this.props.editProfile({
      currentUserToken: this.props.userSession.currentUserToken,
      data: {
        email: this.state.newEmail
      }
    })  
    this.state.updated= true;
  }
  catch(e) {
    this.state.updated= false;
  }

当响应失败时,我得到:

可能未处理的承诺拒绝(id:0)和响应主体。

我通过 props 调用的 editProfile 在我的控制器中:

  function mapDispatchToProps(dispatch) {
return {
  dispatch,
  editProfile: bindActionCreators(editProfileRequest, dispatch)
};

>

更新:

   this.props.editProfile({
      currentUserToken: this.props.userSession.currentUserToken,
      data: {
        email: this.state.newEmail
      }
    })  

这里我需要:

  try {
       this.props.editProfile({
      currentUserToken: this.props.userSession.currentUserToken,
      data: {
        email: this.state.newEmail
      }
    })  
  }
 catch( error ? )
{
this.setState({failedUpdate:true})
}

我如何处理拒绝?

1个回答

您的提取顺序错误。尝试以下操作:

method: 'PUT'
     })
    .then(response => {
     if (response.ok)
        return response.json()
     else throw new Error('error')
    .then(schematizeResponse).
     catch(err => alert(err));
sebastianf182
2018-01-10