Usando assíncronos/aguardar em javascript com exemplos

Usando assíncronos/aguardar em javascript com exemplos

Async/Wait é um recurso do JavaScript que permite aos desenvolvedores escrever código assíncrono de uma maneira mais síncrona. Com o Async/Wait, os desenvolvedores podem escrever código que aguarda a conclusão de uma operação assíncrona, sem bloquear o segmento principal da execução.

Neste artigo, exploraremos como usar o Async/Aguardar em JavaScript com alguns exemplos.

Sintaxe de assíncrona/aguardar

A sintaxe de assíncrono/aguardar é bastante simples. Para definir uma função assíncrona, você adiciona a palavra -chave assíncrona antes da palavra -chave da função, assim:

Função assíncrona getData () // Código assíncrono vai aqui
123Função assíncrona getData () // Código assíncrono vai aqui

Dentro de assíncrono Função, você pode usar a palavra -chave aguarda para aguardar uma promessa de resolver, assim:

Função assíncrona getData () const Response = Aguarda Fetch ('https: // API.exemplo.com/dados '); const dados = aguardar resposta.json (); retornar dados;
12345Função assíncrona getData () const Response = Aguarda Fetch ('https: // API.exemplo.com/dados '); const dados = aguardar resposta.json (); retornar dados;

Neste exemplo, usamos a função Fetch para fazer uma solicitação HTTP e, em seguida. Em seguida, usamos a palavra -chave aguardar novamente para esperar que os dados do JSON sejam analisados ​​antes de devolvê -los.

Exemplo: buscando dados de uma API usando async/aguardar

Vamos dar uma olhada em como usar async/aguarda para buscar dados de uma API. Neste exemplo, usaremos a função Fetch para fazer uma solicitação HTTP à API do GitHub e depois usar o Async/aguarda para esperar que a resposta seja devolvida.

função assíncrona fetchgithubuser (nome de usuário) const url = 'https: // api.Github.com/usuários/$ nome de usuário '; const Response = aguarda buscar (URL); const dados = aguardar resposta.json (); retornar dados; fetchgithubuser ('Octocat') .então (dados => console.log (dados))) .captura (erro => console.erro (erro));
12345678910função assíncrona fetchgithubuser (nome de usuário) const url = 'https: // api.Github.com/usuários/$ nome de usuário '; const Response = aguarda buscar (URL); const dados = aguardar resposta.json (); Dados de retorno; fetchgithubuser ('Octocat') .então (dados => console.log (dados))) .captura (erro => console.erro (erro));

Neste exemplo, definimos uma função assíncrona chamada Fetchgithubuser Isso leva um nome de usuário do github como seu parâmetro. Dentro da função, construímos o URL para a solicitação da API, usamos a função Fetch para fazer a solicitação e depois usamos a palavra -chave aguardar para esperar que a resposta seja devolvida. Em seguida, usamos a palavra -chave aguardar novamente para esperar que os dados do JSON sejam analisados ​​antes de devolvê -los.

Para chamar a função assíncrona, usamos a sintaxe da promessa padrão, com um .então() método para lidar com o caso de sucesso e um .pegar() Método para lidar com quaisquer erros.

Exemplo: Usando promessas com assíncronas/aguardar

Às vezes, pode ser necessário usar promessas com async/aguardar. Neste exemplo, usaremos o Promessa.todos() Método para fazer várias solicitações de API em paralelo e depois usar async/aguarde para esperar que todos os pedidos sejam concluídos antes de continuar.

função assíncrona fetchgithubdata () const urls = ['https: // api.Github.com/usuários/octocat ',' https: // API.Github.com/usuários/mojombo ',' https: // api.Github.com/usuários/Defunkt ']; Const Promises = URLs.mapa (url => busca (url)); Const Responses = Aguardar promessa.todos (promessas); const data = aguarda promessa.Todos (respostas.mapa (resposta => resposta.json ())); retornar dados; fetchgithubdata () .então (dados => console.log (dados))) .captura (erro => console.erro (erro));
1234567891011121314151617função assíncrona fetchgithubdata () const urls = ['https: // api.Github.com/usuários/octocat ',' https: // API.Github.com/usuários/mojombo ',' https: // api.Github.com/usuários/Defunkt ']; Const Promises = URLs.mapa (url => busca (url)); Const Responses = Aguardar promessa.todos (promessas); const data = aguarda promessa.Todos (respostas.mapa (resposta => resposta.json ())); Dados de retorno; fetchgithubdata () .então (dados => console.log (dados))) .captura (erro => console.erro (erro));

Neste exemplo, definimos uma função assíncrona chamada fetchgithubdata que constrói uma variedade de URLs de solicitação de API e depois usa o mapa() Método para criar uma variedade de promessas que buscarão os dados de cada URL. Nós então usamos o Promessa.todos() método para esperar que todos os pedidos sejam concluídos antes de continuar.

Depois de recebermos todas as respostas, usamos o mapa() Método novamente para criar uma variedade de promessas que analisarão os dados JSON de cada resposta. Em seguida, usamos a palavra -chave aguarda novamente para aguardar todas essas promessas para concluir antes de devolver os dados como uma variedade de objetos.

Práticas recomendadas para usar async/aguardar

Aqui estão algumas práticas recomendadas para usar o Async/Await em seu código JavaScript:

  • Sempre lide com erros: O código assíncrono pode ser propenso a erros, por isso é importante sempre lidar com eles corretamente. Você pode usar tente/capturar blocos para capturar erros dentro de uma função assíncrona, ou você pode usar o .pegar() Método em uma promessa de lidar com erros no código de chamada.
  • Não use demais async/aguarde: Embora o assíncrono/aguardo possa facilitar a leitura e a escrita do código assíncrono, nem sempre é necessário ou apropriado. Use apenas assíncrono/aguardar quando você precisa esperar uma promessa de resolver antes de continuar.
  • Use promessa.todos () para solicitações paralelas: Se você precisar fazer várias solicitações de API em paralelo, use o Promessa.todos() método para esperar que todos os pedidos sejam concluídos antes de continuar.
  • Não bloqueie o tópico principal: Lembre -se de que o código assíncrono deve ser executado em segundo plano; portanto, evite bloquear o segmento principal da execução. Se o seu código levar muito tempo para ser executado, considere usar um trabalhador da web para executá -lo em segundo plano.
  • Mantenha as funções pequenas e focadas: Como em qualquer função, é importante manter as funções assíncronas pequenas e focadas. Se uma função estiver fazendo muito, considere dividi -la em funções menores e mais focadas.

Conclusão

Async/Await é uma característica poderosa do JavaScript que pode facilitar a leitura do código assíncrono. Ao usar a palavra -chave aguarda para aguardar as promessas de resolver, você pode escrever código que parece e se sente mais com código síncrono. Lembre -se de lidar com erros corretamente, use promessa.todos () para solicitações paralelas e evite bloquear o fio principal da execução.