Async e Requisições
Fundamentos do XanaScript • Aula 14 de 20
Programas reais precisam esperar: buscar dados de uma API, ler arquivos, dormir por um tempo. Async permite fazer essas esperas sem travar o programa. O XanaScript usa assincrono e aguenta-ai.
Por que async existe?
Operações de rede são lentas (milissegundos a segundos). Se o código esperasse parado, nada mais rodaria. Async permite: "inicie a requisição, e quando ela voltar, continue daqui". O aguenta-ai é o ponto onde você para e espera o resultado.
Arrow assíncrona
cria buscarUsuario = assincrono (id) => {
cria res = stalkeia("https://jsonplaceholder.typicode.com/todos/" + id)
volta res
}Aguardando com aguenta-ai
cria main = assincrono () => {
cria dados = aguenta-ai buscarUsuario(1)
grita-ae(dados)
}
aguenta-ai main()Repare: aguenta-ai antes de uma chamada de função espera o resultado dela; aguenta-ai(1000) com um número dorme 1 segundo.
Sleep
grita-ae("começando...")
aguenta-ai(1000)
grita-ae("1 segundo depois")Combinando async com tenta / fodeu
Regra de ouro: toda operação de rede deve ter tratamento de erro:
cria buscar = assincrono () => {
tenta {
cria dados = aguenta-ai stalkeia("https://api.exemplo.com/dados")
grita-ae("Dados:", dados)
} fodeu (erro) {
grita-ae("Falha: " + erro)
}
}
aguenta-ai buscar()Se a API estiver fora do ar, o fodeu pega o erro e o programa continua vivo.
O fluxo mental do async
assincrono () => {...}→ a função vira um "script que pode esperar".aguenta-ai algo()→ "pausa aqui, espera oalgoterminar, e me dá o resultado".- Erros dentro do corpo → vão pro
fodeumais próximo.
É a mesma lógica do dia a dia: você manda entregar um pedido (async), espera o entregador (aguenta-ai), e se não vier (erro), você reclama (fodeu).