来自反应组件的反应发布请求

时间:2018-01-17 17:12:22

标签: reactjs asynchronous async-await axios

我在React Component中有一个函数:

verifyInputAndRequest(){
    var formData = new FormData();
    formData.append("username", this.state.username);
    formData.append("password", this.state.password);
    var reply = performPostRequest("linkRequest/", formData)
    console.log(reply) //this returns undefined     
    }

}

并且performPostRequest函数如下所示:

export function performPostRequest(RequestUrl, data) {
    axios.post(RequestUrl, data)
    .then(function (response) {
        return response;
    })
    .catch(function (error) {
        //handle error
          return error;
    });

}

在执行期间,reply被记录为undefined

我理解这是由于同步执行。

如何处理?

1 个答案:

答案 0 :(得分:1)

export function performPostRequest(RequestUrl, data) {
 return new Promise((resolve,reject)=>{
  axios.post(RequestUrl, data)
  .then(function (response) {
    resolve (response);
   })
  .catch(function (error) {
    //handle error
      reject(error);
  });
})
}

在验证功能中: -

   verifyInputAndRequest(){
    var formData = new FormData();
    formData.append("username", this.state.username);
    formData.append("password", this.state.password);
    performPostRequest("linkRequest/", formData)
     .then((data)=>{
       var reply = data;
       console.log(reply);
      })
     .catch((err)=>{
      console.log("err",err);
     })

    }

}