Pular para o conteúdo

Assíncrono

Código que não acontece na hora. É o motivo de existir estado de carregamento na sua tela.

Também aparece como "async", "await", "promise", "callback", "carregando".

Quase tudo que sai do navegador demora: buscar dados numa API, enviar um formulário, subir uma imagem. Assíncrono é o jeito do JavaScript lidar com isso sem congelar a página.

async function carregarProdutos() {
  const resposta = await fetch("/api/produtos");
  const produtos = await resposta.json();
  return produtos;
}

await quer dizer "espera essa parte terminar antes de seguir". async marca a função que tem espera dentro.

Promise

Uma promise é a promessa de um valor que ainda não chegou. Ela tem três situações possíveis: pendente, cumprida ou rejeitada. E é exatamente esse trio que aparece na sua tela como carregando, sucesso e erro.

try {
  const produtos = await carregarProdutos();
} catch (erro) {
  // aqui mora a tela de erro
}

O que isso te obriga a desenhar

Toda espera precisa de resposta visual. Se o botão de salvar não muda ao ser clicado, a pessoa clica de novo. Se a lista aparece do nada depois de dois segundos de tela branca, parece bug.

Skeleton, spinner, botão desabilitado com "Salvando..." e mensagem de erro com o que fazer em seguida não são enfeite. São a interface do tempo passando, e ninguém além de você vai desenhar isso.

Outros termos de JavaScript

Quer o assunto inteiro e não só a definição? Os guias pegam cada tema do começo ao fim.