无法从 axios 获得响应

时间:2021-04-25 00:32:17

标签: javascript json reactjs axios

我正在尝试进行 axios 调用以发布博客并返回响应消息,如果响应为 "success",则它应该继续,出于测试目的,我只是在执行 console.log("success ok"),问题是,我遇到了一个我无法理解的奇怪问题。

这是我的函数 publishBlog

const publishBlog = (e) => {
    e.preventDefault();
    console.log('ready to publishBlog');

    const response = createBlog(blogInfo, token)

    console.log(`my response: ${JSON.stringify(response)}`);

    //should be if(response.data.message) {
    if (response === "success") { 
        console.log("success ok")
    }
}

方法 createBlog 在这里:

export const createBlog = (blog, token) => {
    console.log(`body: ${JSON.stringify(blog)}, token: ${token}`)

    const [username, role] = isAuth();

    console.log(`isAuth resp: ${username}`)
    console.log(`isAuth role resp: ${role}`)

    let createBlogEndPoint;

    if (username && role === 1) {
        console.log('role equals 1')
        createBlogEndPoint = '/blog'
    } else if (username && role === 0) {
        console.log('role equals 0')
        createBlogEndPoint = '/user/blog'
    }

    const blogInfo = { title: blog.title, body: blog.body, postedByUserName: username }

    return axios.post(axios.defaults.baseURL + createBlogEndPoint, blogInfo)
    .then(response => {
        console.log(`axios data: ${JSON.stringify(response)}`)
        console.log(`axios message: ${JSON.stringify(response.data.message)}`)


        return response;
    })//.catch(err => console.log(err));

};

这是我的问题:

看起来像这行代码:

console.log(`my response: ${JSON.stringify(response)}`);

在这行代码之前运行:

const response = createBlog(blogInfo, token)

当你查看控制台日志时,我的意思是:

enter image description here

我如何才能检查 response 是否正常?我正在尝试返回 axios 响应,然后检查 if (response.data.message == "success"),以便我可以继续。

1 个答案:

答案 0 :(得分:0)

发生这种情况是因为您的 createBlog 返回了 Promise,因此您应该更改代码以使用 async/await 来解决它。

我不是 100% 知道你的代码,所以试试这个:

const publishBlog = async (e) => {
    e.preventDefault();
    console.log('ready to publishBlog');

    const response = await createBlog(blogInfo, token)

    console.log(`my response: ${JSON.stringify(response)}`);

    //should be if(response.data.message) {
    if (response === "success") { 
        console.log("success ok")
    }
}
相关问题