how to return response of axios in return

前端 未结 4 1915
长情又很酷
长情又很酷 2021-02-01 06:09

I want to return the response of axios but always the response that returned is undefined:

wallet.registerUser=function(data){
axios.post(\'http://localhost:8080         


        
4条回答
  •  忘掉有多难
    2021-02-01 06:56

    console.log won't wait for the function to fully complete before logging it. This means that you will have to make wallet.registerUser asynchronous, there are two main ways to do this:

    1. Callback - this is when you pass a function as a parameter into your existing function which will be executed once your axios call has finished. Here is how it would work with your code:

      wallet.registerUser=function(data, callback){
        axios.post('http://localhost:8080/register',{
          phone:data.phone,
          password:data.password,
          email:data.email
        }).then(response =>{
          callback(response.data.message);
          console.log(response.data.message);
        }).catch(err =>{
          console.log(err);
        })
      }
      
      wallet.registerUser(data, function(response) {
        console.log(response)
      });
      
    2. Promise - The easiest way to do this is to put async in front of your function name. This will make anything returned from the function return in the form of a promise. This is how it would work in your code:

       wallet.registerUser=async function(data){
        axios.post('http://localhost:8080/register',{
          phone:data.phone,
          password:data.password,
          email:data.email
        }).then(response =>{
          return response.data.message;
          console.log(response.data.message);
        }).catch(err =>{
          console.log(err);
        })
      }
      
      wallet.registerUser(data).then(function(response) {
        console.log(response);
      });
      

    Here is some more information on asynchronous functions:

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function

    https://developer.mozilla.org/en-US/docs/Glossary/Callback_function

提交回复
热议问题