Je veux retourner la réponse d'axios mais toujours la réponse qui est retournée n'est pas définie:
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));
La console se connecte toujours comme non définie. Est-ce leur façon de retourner cette réponse.
console.log n'attendra pas que la fonction soit complètement terminée avant de l'enregistrer. Cela signifie que vous devrez faire wallet.registerUser
asynchrone, il existe deux façons principales de procéder:
Rappel - c'est lorsque vous passez une fonction en tant que paramètre dans votre fonction existante qui sera exécutée une fois votre appel axios terminé. Voici comment cela fonctionnerait avec votre code:
wallet.registerUser=function(data, callback){
axios.post('http://localhost:8080/register',{
phone:data.phone,
password:data.password,
email:data.email
}).then(response =>{
callback(response.data.message);
console.log(response.data.message);
}).catch(err =>{
console.log(err);
})
}
wallet.registerUser(data, function(response) {
console.log(response)
});
Promise - La façon la plus simple de le faire est de mettre async
devant le nom de votre fonction. Cela rendra tout retour de la fonction sous forme de promesse. Voici comment cela fonctionnerait dans votre code:
wallet.registerUser=async 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);
})
}
wallet.registerUser(data).then(function(response) {
console.log(response);
});
Voici quelques informations supplémentaires sur les fonctions asynchrones:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function
https://developer.mozilla.org/en-US/docs/Glossary/Callback_function