Quando o JS se deparar com uma promise ele vai mandar a função async inteira para a task queue ou só a linha de código que contém o await?
Quando o JS se deparar com uma promise ele vai mandar a função async inteira para a task queue ou só a linha de código que contém o await?
Oi Renan!
Quando o JavaScript se depara com uma promise
dentro de uma função async
, ele não manda a função inteira para a task queue. O que acontece é o seguinte:
O JavaScript encontra um await
, ele pausa a execução da função async
até que a promise
seja resolvida ou rejeitada. E durante essa pausa, a execução da função async
é suspensa e o controle é devolvido ao event loop, que continua processando outras tarefas.
Por fim, quando a promise
é resolvida ou rejeitada, a execução da função async
é retomada a partir do ponto onde o await
estava, e a linha de código seguinte é executada.
Então, apenas a linha de código que contém o await
é "pausada" e a função async
continua a ser executada normalmente após a resolução da promise
.
Reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!
Sucesso ✨
Um grande abraço e até mais!