Motivação

Código assíncrono com callbacks ou mesmo com promises pode ser difícil de ler.

As instruções async e await são uma abstração de promises que permitem escrever código mais legível.

Considere o exemplo a seguir usando promises. O código aguarda 300 milissegundos, imprime “a”, aguarda mais 200 milisegundos e então imprime “b”.

await

O código acima pode ser reescrito da seguinte forma:

Observações:

  • A palavra-chave await só pode ser usada dentro de funções async
  • await recebe uma promise
  • Funções prefixadas com a palavra-chave async são funções assíncronas que retornam promises.

Exemplo mais completo

Baseado no exemplo da aula de padrões de concorrência.