我想返回 axios 的响应,但返回的响应始终是未定义的:
wallet.registerUser=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);
})
}
console.log(wallet.registerUser(data));
控制台始终记录为未定义。他们是否以任何方式返回此响应。
原文由 Candy 发布,翻译遵循 CC BY-SA 4.0 许可协议
console.log 在记录之前不会等待函数完全完成。这意味着您必须使
wallet.registerUser
异步,有两种主要方法可以做到这一点:async
放在你的函数名前面。这将使函数返回的任何内容都以 Promise 的形式返回。这就是它在您的代码中的工作方式:以下是有关异步函数的更多信息:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function
https://developer.mozilla.org/en-US/docs/Glossary/Callback_function