Como obter o resultado de uma requisição assíncrona em JavaScript?
Olá a todos! Sou novo em JavaScript e me deparei com um problema que está me deixando perplexo. Estou tentando obter dados de uma requisição AJAX e retorná-los de uma função, mas não estou conseguindo.
Aqui está meu código:
```javascript
function getUserData(userId) {
let userData;
fetch(`https://api.example.com/users/${userId}`)
.then(response => response.json())
.then(data => {
userData = data;
console.log('Dentro do then:', userData); // Os dados estão aqui
});
console.log('Após fetch:', userData); // undefined
return userData; // Sempre undefined
}
const user = getUserData(123);
console.log('Resultado:', user); // undefined
```
Eu entendo que o problema está relacionado à assincronicidade, mas não consigo entender como "retornar" os dados corretamente. Tentei usar async/await, mas ainda recebo undefined. Por favor, explique como trabalhar corretamente com chamadas assíncronas e obter o resultado. Ficarei muito grato por uma explicação detalhada.