Como obter o resultado de uma requisição assíncrona e retorná-lo de uma função?
Olá a todos! Sou novo em JavaScript e me deparei com um problema que não consigo resolver. Estou escrevendo um código simples que faz uma requisição AJAX a uma API e tenta retornar os dados obtidos, mas sempre recebo undefined. Aqui está meu 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 do success:', userData); // Os dados estão aqui!
}
});
return userData; // Sempre undefined
}
const result = getUserData(42);
console.log('Fora:', result); // undefined
Eu entendo que o problema é a assincronicidade — a função getUserData retorna o valor antes de a resposta do servidor chegar. Mas como então obter os dados corretamente e usá-los no código? Tentei várias abordagens: variáveis globais, setTimeout, mas nada