最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - axios API - wait for response - Stack Overflow

programmeradmin1浏览0评论

I'am sending data to server with axios library

the query is working, but i'am not able to wait the answer of axios

import axios from '../helper/axiosAPI'

 /** data send to axios */
 let formData = new FormData();
 formData.append('file',this.file);

 /**Axios query */
 try{
    axios.post(formData)  
    .then(res=> console.log('result : ' + res)) // no data recieve              
  }
  catch(err){
    console.log(err)
  }

here my post request (axiosAPI file):

axios = require('axios').default;
const uri = process.env.VUE_APP_URI;
const endPoint = 'professional/upload'

 exports.post = async (formData) =>{
 axios({
    method:'post',
    url:uri + endPoint,
    data:formData,
    headers:{
        "Content-Type": "Content-Type: multipart/form-data"
    }
})
.then(response => {   
    console.log('axios : ' + response) // response is recieved    
    return response.data })
.catch(err => console.log(`Erreur AXIOS API : + ${err}`));

}

my Axios query work well and data is post to server. But i am not succed to wait the reponse from the server.

console.log('result : ' + res)=> (res is undefined -> not waiting for axios response)

console.log('axios : ' + response) =>(response is recieve from server)

It will be very nice if you help me to find a solution to wait axios result

thanks a lot

I'am sending data to server with axios library

the query is working, but i'am not able to wait the answer of axios

import axios from '../helper/axiosAPI'

 /** data send to axios */
 let formData = new FormData();
 formData.append('file',this.file);

 /**Axios query */
 try{
    axios.post(formData)  
    .then(res=> console.log('result : ' + res)) // no data recieve              
  }
  catch(err){
    console.log(err)
  }

here my post request (axiosAPI file):

axios = require('axios').default;
const uri = process.env.VUE_APP_URI;
const endPoint = 'professional/upload'

 exports.post = async (formData) =>{
 axios({
    method:'post',
    url:uri + endPoint,
    data:formData,
    headers:{
        "Content-Type": "Content-Type: multipart/form-data"
    }
})
.then(response => {   
    console.log('axios : ' + response) // response is recieved    
    return response.data })
.catch(err => console.log(`Erreur AXIOS API : + ${err}`));

}

my Axios query work well and data is post to server. But i am not succed to wait the reponse from the server.

console.log('result : ' + res)=> (res is undefined -> not waiting for axios response)

console.log('axios : ' + response) =>(response is recieve from server)

It will be very nice if you help me to find a solution to wait axios result

thanks a lot

Share Improve this question asked Sep 23, 2021 at 21:02 aviateur22aviateur22 451 silver badge8 bronze badges 1
  • Your problem is the return response.data. It is not returning the value to the post function but to the then lambda function. You could instead use either Promise resolve syntax or full async await syntax. This mix and match here is confusing and causing unwanted behavior. – Gonnen Daube Commented Sep 23, 2021 at 21:12
Add a ment  | 

2 Answers 2

Reset to default 4

You can use the await with axios:

Like this:

try
{
    let res = await axios.post(formData);
    console.log('result : ' + res); // no data received
}
catch(err)
{
    console.log(err);
}

and this:

const axios = require('axios').default;
const uri = process.env.VUE_APP_URI;
const endPoint = 'professional/upload';

exports.post = async (formData) =>{
    try
    {
        let response = await axios(
            {
                method: 'post',
                url: uri + endPoint,
                data: formData,
                headers:
                {
                    "Content-Type": "Content-Type: multipart/form-data"
                }
            }
        );

        console.log('axios : ' + response); // response is received    
        return response.data;
    }
    catch (err) 
    {
        console.log(err);
    }
}

See also:

https://stackoverflow./a/49661388/194717

https://www.npmjs./package/axios

Since your handle is async so you need to put await before axios calling.

exports.post = async (formData) =>{
 return await axios({
    method:'post',
    url:uri + endPoint,
    data:formData,
    headers:{
        "Content-Type": "Content-Type: multipart/form-data"
    }
})
发布评论

评论列表(0)

  1. 暂无评论