Comment obtenir le résultat d'une requête asynchrone et le retourner depuis une fonction ?
Bonjour à tous ! Je suis débutant en JavaScript et j'ai rencontré un problème que je n'arrive pas à résoudre. J'écris un code simple qui fait une requête AJAX vers une API et tente de retourner les données reçues, mais j'obtiens toujours undefined. Voici mon code :
function getUserData(userId) {
let userData;
$.ajax({
url: 'https://api.example.com/users/' + userId,
method: 'GET',
success: function(response) {
userData = response;
console.log('Dans success :', userData); // Les données sont là !
}
});
return userData; // Toujours undefined
}
const result = getUserData(42);
console.log('À l'extérieur :', result); // undefined
Je comprends que le problème vient de l'asynchronisme — la fonction getUserData retourne une valeur avant que la réponse du serveur n'arrive. Mais comment faire pour obtenir correctement les données et les utiliser ensuite dans le code ? J'ai essayé différentes approches : variables globales, setTimeout, mais rien n'a fonctionné.