arrow_back Voltar ao curso

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

js
cria buscarUsuario = assincrono (id) => {
  cria res = stalkeia("https://jsonplaceholder.typicode.com/todos/" + id)
  volta res
}

Aguardando com aguenta-ai

js
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

js
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:

js
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

  1. assincrono () => {...} → a função vira um "script que pode esperar".
  2. aguenta-ai algo() → "pausa aqui, espera o algo terminar, e me dá o resultado".
  3. Erros dentro do corpo → vão pro fodeu mais 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).

Comentários