O documento discute conceitos de assincronismo em JavaScript, como funções assíncronas, callbacks, promises e async/await. É explicado que o JavaScript é executado de forma assíncrona através de um event loop que agenda tarefas. Funções assíncronas como eventos, timers e callbacks são discutidas, assim como problemas com callbacks hell. Promessas e seu uso para processamento assíncrono são apresentadas, incluindo seus estados. Por fim, async e await são introduzidos como uma forma mais limpa de lidar com assincronismo.
6. Síncrona x Assíncrona
6
É sequencial, logo segue a
ordem em que as instruções
aparecem no código fonte do
programa.
Você tende a esperar o final
de uma execução para iniciar
outra.
7. Síncrona x Assíncrona
7
Tarefas que poderão ser
executadas sem interferir no
fluxo principal de execução do
código.
Você pode disparar uma série
dessas tarefas sem precisar
esperar que cada uma se
complete para prosseguir.
É sequencial, logo segue a
ordem em que as instruções
aparecem no código fonte do
programa.
Você tende a esperar o final
de uma execução para iniciar
outra.
16. Entendendo a engine JS
16
“O próprio JavaScript nunca teve nenhuma noção direta de
assincronia embutida nele.”
17. Entendendo a engine JS
17
● Ambiente de Hospedagem (Navegador ou NodeJS);
“O próprio JavaScript nunca teve nenhuma noção direta de
assincronia embutida nele.”
18. Entendendo a engine JS
18
● Ambiente de Hospedagem (Navegador ou NodeJS);
● Cada dispositivo uma hospedagem diferente;
“O próprio JavaScript nunca teve nenhuma noção direta de
assincronia embutida nele.”
19. Entendendo a engine JS
19
● Ambiente de Hospedagem (Navegador ou NodeJS);
● Cada dispositivo uma hospedagem diferente;
● Denominador comum é chamado de Event Loop.
“O próprio JavaScript nunca teve nenhuma noção direta de
assincronia embutida nele.”
20. Entendendo a engine JS
20
● Ambiente de Hospedagem (Navegador ou NodeJS);
● Cada dispositivo uma hospedagem diferente;
● Denominador comum é chamado de Event Loop.
“O próprio JavaScript nunca teve nenhuma noção direta de
assincronia embutida nele.”
22. O que faz o Event Loop?
22
● Lida com a execução de vários fragmentos de seu programa ao
longo do tempo;
(Engine JS)
23. O que faz o Event Loop?
23
● Lida com a execução de vários fragmentos de seu programa ao
longo do tempo;
● ‘É uma agenda os eventos’;
(Engine JS)
24. O que faz o Event Loop?
24
● Lida com a execução de vários fragmentos de seu programa ao
longo do tempo;
● ‘É uma agenda os eventos’;
● Monitora a pilha e a chamada e a fila de retorno.
(Engine JS)
55. Promises - Estados
● Pedding (Pendente): Estado inicial, que não foi realizada nem rejeitada.
55
56. Promises - Estados
● Pedding (Pendente): Estado inicial, que não foi realizada nem rejeitada.
● Fulfilled (Realizada): Sucesso na operação.
56
57. Promises - Estados
● Pedding (Pendente): Estado inicial, que não foi realizada nem rejeitada.
● Fulfilled (Realizada): Sucesso na operação.
● Rejected (Rejeitado): Falha na operação.
57
58. Promises - Estados
● Pedding (Pendente): Estado inicial, que não foi realizada nem rejeitada.
● Fulfilled (Realizada): Sucesso na operação.
● Rejected (Rejeitado): Falha na operação.
● Settled (Estabelecida): Que foi realizada ou rejeitada.
58
61. Resolve
Retorna um objeto
‘Promise’ que foi
resolvido com um dado
valor.
Reject
Retorna um objeto que
foi rejeitado.
61
Promises - Principais Funções
62. Resolve
Retorna um objeto
‘Promise’ que foi
resolvido com um dado
valor.
Reject
Retorna um objeto que
foi rejeitado.
Catch
Adiciona um callback
que trata rejeição para
a promise.
62
Promises - Principais Funções
67. Async
67
● É utilizado para declarar que uma função é async
● AsyncFunction object trabalha da mesma forma que uma Promise
68. Async
68
● É utilizado para declarar que uma função é async
● AsyncFunction object trabalha da mesma forma que uma Promise
● Callbacks | Resolves e Reject --- await
71. Await
71
A expressão await faz a execução de uma função async pausar, aguardando o
retorno da Promise.
Ela pode ser usado apenas dentro de uma async function.