Cómo obtener el resultado de una solicitud asíncrona y devolverlo desde una función
¡Hola a todos! Soy nuevo en JavaScript y me encontré con un problema que no puedo resolver. Escribo un código simple que hace una solicitud AJAX a una API e intenta devolver los datos obtenidos, pero siempre obtengo undefined. Aquí está mi código:
function getUserData(userId) {
let userData;
$.ajax({
url: 'https://api.example.com/users/' + userId,
method: 'GET',
success: function(response) {
userData = response;
console.log('Dentro de success:', userData); // ¡Los datos están aquí!
}
});
return userData; // Siempre undefined
}
const result = getUserData(42);
console.log('Fuera:', result); // undefined
Entiendo que el problema es la asincronía: la función getUserData devuelve el valor antes de que llegue la respuesta del servidor. Pero, ¿cómo obtener correctamente los datos y usarlos más adelante en el código? He probado diferentes opciones: variables globales, setTimeout, pero nada funciona.