如何从 axios 返回服务器响应

时间:2021-06-06 23:18:35

标签: async-await axios

我已经查看了其他一些关于此的帖子,似乎我需要应用“等待”我只是不确定如何修改以下内容来做到这一点

function sendData(url,emailPass){

    let bodyFormData = new FormData()
    for (const [key, value] of Object.entries(emailPass)) {
        console.log(key,value)
        bodyFormData.append(key,value)
    }

        
    axios({
        method: 'POST',
        url: url,
        data: bodyFormData,
        headers: {'Content-Type': 'multipart/form-data'}
    })
        .then(function (response){
            return response.data

        })
        .catch(function(response){
            return response
        })

}

1 个答案:

答案 0 :(得分:1)

您应该修改函数以从 axios 返回 promise,后者返回响应数据。

function sendData(url,emailPass){

    let bodyFormData = new FormData()
    for (const [key, value] of Object.entries(emailPass)) {
        console.log(key,value)
        bodyFormData.append(key,value)
    }

        
    return axios({
        method: 'POST',
        url: url,
        data: bodyFormData,
        headers: {'Content-Type': 'multipart/form-data'}
    })
        .then(function (response){
            return response.data

        })
        .catch(function(response){
            return response
        })

}

如果你想使用 async/await 你可以这样做

async function sendData(url,emailPass){

    let bodyFormData = new FormData()
    for (const [key, value] of Object.entries(emailPass)) {
        console.log(key,value)
        bodyFormData.append(key,value)
    }
    
    try{
        const response = await axios({
            method: 'POST',
            url: url,
            data: bodyFormData,
            headers: {'Content-Type': 'multipart/form-data'}
        });
        return response.data;
    }catch(e){
        return e.response.data;   
    }
}