我正在尝试进行 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)
当你查看控制台日志时,我的意思是:
我如何才能检查 response
是否正常?我正在尝试返回 axios 响应,然后检查 if (response.data.message == "success")
,以便我可以继续。
答案 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")
}
}