"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Evitando explicitamente o inferno de retorno de chamada

Evitando explicitamente o inferno de retorno de chamada

Publicado em 17/09/2024
Navegar:616

A programação assíncrona é um dos principais pontos fortes do JavaScript, especialmente em Node.js; no entanto, devido à necessária separação de interesses, múltiplas operações assíncronas são frequentemente executadas por meio de retornos de chamada, e isso pode levar ao que é conhecido como “inferno de retorno de chamada”. Por exemplo, considere uma situação em que estamos trabalhando com retornos de chamada aninhados em nosso código JavaScript e vamos ver como podemos refatorá-lo usando Promises e a estrutura async/await.

Inferno de retorno de chamada: um exemplo

Vamos começar com um código que usa retornos de chamada para lidar com operações de arquivo para um sistema simples de gerenciamento de produtos:

Explicitly Avoiding Callback Hell

Aqui, temos várias backcalls bem aninhadas para ler e gravar em um arquivo. Este é provavelmente um dos casos em que você escreveria quando estivesse no fundo do inferno dos retornos de chamada. Finalmente, com um número maior de operações assíncronas, o código aumentará, assim como a quantidade de recuo, dificultando a leitura. No método save(), a função fs.readFile lê o arquivo e, em seguida, seu retorno de chamada analisa o conteúdo e usa uma função fs.writeFile para reescrever o conteúdo do arquivo, o que é feito em outro retorno de chamada. Esses níveis de aninhamento fazem com que o código se assemelhe ao que é chamado de “pirâmide da destruição”.

Mudando para Promises e Async/Await

Para evitar esse inferno de retorno de chamada, existem promessas de JavaScript e a sintaxe async/await que torna o código muito mais legível, gerenciável e fácil de depuração.

Aqui está a versão melhorada:

Explicitly Avoiding Callback Hell

Por que Promessas e Async/Await?

As promessas são úteis porque permitem o gerenciamento de operações assíncronas de forma linear e com o menor número de estruturas aninhadas. O padrão async/await melhora a legibilidade do código e também aborda as operações assíncronas de uma forma que se parece mais com as operações síncronas. Usando especificamente blocos try e catch, o processamento de erros se torna mais transparente e fácil de entender, o que contribui para a manutenção do código.

Conclusão

O inferno de retorno de chamada pode ser o verdadeiro problema ao escrever o código de maneira limpa e funcional em JavaScript, especialmente em Node.js. Com a ajuda de Promises e async/await, é possível transformar o callback hell fortemente aninhado em código linear limpo, ao mesmo tempo que facilita o tratamento de erros. Ele não apenas transforma seu código para parecer muito melhor, mas também o coloca no caminho certo para se tornar um programador JavaScript melhor.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/syriamme/explicitly-avoiding-callback-hell-h95?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3